我正在 Android 工作室做一个以设计为重点的学校项目(Java 代码不是优先级),我想设计一个锻炼应用程序。但是,我目前遇到的问题是我的 XML 布局在 Android Studio 中的显示方式与在模拟器上的显示方式不同。即使模拟器和 Android 工作室都使用 Pixel 3 XL 作为基础。
我想在片段中包含由 CardView 制作的布局。我这样做是因为我想稍后在多个不同的片段上重用相同的 CardView。我已将布局包含在 include layout=""-tag 中,并在该标签中设置我想要在 CardView 上的边距(16dp)(参见下面的代码)。这在 Android Studio 预览版中看起来非常好,但在模拟器上运行时看起来边距设置为 48dp 或类似的荒谬(见下图)。
片段布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".ui.home.HomeFragment">
<include layout="@layout/personinfo_cardview"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginStart="16dp"
android:layout_marginTop="16dp"
android:layout_marginEnd="16dp" />
</LinearLayout>
卡片视图布局
<androidx.cardview.widget.CardView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/personInfo_cardView"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:elevation="2dp"
android:padding="16dp"
app:cardCornerRadius="0dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingTop="16dp"
android:paddingBottom="16dp">
<TextView
android:id="@+id/weightValue_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/value_unknown"
android:textSize="18sp"
app:layout_constraintBottom_toTopOf="@id/weightHeading_textView"
app:layout_constraintEnd_toStartOf="@+id/heightValue_textView"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/heightValue_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/value_unknown"
android:textSize="18sp"
app:layout_constraintBottom_toTopOf="@id/heightHeading_textView"
app:layout_constraintEnd_toStartOf="@+id/ageValue_textView"
app:layout_constraintStart_toEndOf="@id/weightValue_textView"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/ageValue_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/value_unknown"
android:textSize="18sp"
app:layout_constraintBottom_toTopOf="@id/ageHeading_textView"
app:layout_constraintEnd_toStartOf="@+id/genderValue_textView"
app:layout_constraintStart_toEndOf="@id/heightValue_textView"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/genderValue_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/value_unknown"
android:textSize="18sp"
app:layout_constraintBottom_toTopOf="@id/genderHeading_textView"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/ageValue_textView"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/weightHeading_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/kilogram_short"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/heightValue_textView"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toBottomOf="@id/weightValue_textView" />
<TextView
android:id="@+id/heightHeading_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/centimeter_short"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/ageValue_textView"
app:layout_constraintStart_toEndOf="@id/weightValue_textView"
app:layout_constraintTop_toBottomOf="@id/heightValue_textView" />
<TextView
android:id="@+id/ageHeading_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/age_short"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/genderValue_textView"
app:layout_constraintStart_toEndOf="@id/heightValue_textView"
app:layout_constraintTop_toBottomOf="@id/ageValue_textView" />
<TextView
android:id="@+id/genderHeading_textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gender_short"
android:textSize="14sp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/ageValue_textView"
app:layout_constraintTop_toBottomOf="@id/genderValue_textView" />
</androidx.constraintlayout.widget.ConstraintLayout>
这里发生了什么?我尝试更改布局文件和包含标签中的边距,但没有任何变化。我也尝试过将 LinearLayout 和 ConstraintLayout 作为包装器,但结果相同。
任何帮助都会得到批准!