0

私は Android スタジオ (Java コードは優先事項ではありません) でデザインに重点を置いた学校プロジェクトを行っている最中で、ある種のワークアウト アプリをデザインしたいと考えていました。ただし、現在、XML レイアウトがエミュレータ上にあるため、Android Studio で同じように表示されないという問題があります。これは、エミュレーターと Android スタジオの両方がベースとして Pixel 3 XL を使用しているにもかかわらずです。

CardView で作成したレイアウトをフラグメントに含めたいと思います。後で複数の異なるフラグメントで同じ CardView を再利用したいので、これを行っています。include layout=""-tag にレイアウトを含め、そのタグ内から CardView に必要な余白 (16 dp) を設定しました (以下のコードを参照)。これは、Android Studio のプレビューではまったく問題ないように見えますが、エミュレーターで実行すると、余白が 48 dp に設定されているように見えます (下の画像を参照)。

フラグメント レイアウト

<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>

CardView レイアウト

<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>

img Android Studio プレビュー

img Pixel 3 XL エミュレータ

ここで何が起こっているのですか?レイアウト ファイル内とインクルード タグの両方で余白を変更しようとしましたが、何も変わりません。また、LinearLayout と ConstraintLayout の両方をラッパーとして試しましたが、結果は同じでした。

どんな助けでも大丈夫です!

4

2 に答える 2