有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java layoutinflater不会膨胀整个布局

我试图将这个constrains layout膨胀到另一个约束布局中

但是当我运行它时,我只得到了pink card四个图像视图没有出现在卡中

这里是主XML文件,我需要在其中扩展另一个布局

<?xml version="1.0" encoding="utf-8"?>
<安卓x.constraintlayout.widget.ConstraintLayout 
 xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:app="http://schemas.安卓.com/apk/res-auto"
xmlns:tools="http://schemas.安卓.com/tools"
安卓:layout_width="match_parent"
安卓:layout_height="match_parent"
安卓:background="@mipmap/wall"
tools:context=".StepThreeActivity">

<安卓x.constraintlayout.widget.ConstraintLayout
    安卓:id="@+id/constraintLayout2"
    安卓:layout_width="374dp"
    安卓:layout_height="635dp"
    安卓:background="@drawable/card"
    安卓:backgroundTint="@color/white"
    安卓:elevation="@dimen/cardview_default_elevation"
    安卓:padding="13dp"
    app:layout_constraintBottom_toBottomOf="parent"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">


    <com.google.安卓.material.floatingactionbutton.FloatingActionButton
        安卓:id="@+id/back"
        安卓:layout_width="wrap_content"
        安卓:layout_height="wrap_content"
        安卓:layout_marginStart="5dp"
        安卓:layout_marginBottom="11dp"
        安卓:backgroundTint="@color/Blue"
        安卓:clickable="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:srcCompat="@drawable/back" />

    <com.google.安卓.material.floatingactionbutton.FloatingActionButton
        安卓:id="@+id/forward"
        安卓:layout_width="wrap_content"
        安卓:layout_height="wrap_content"
        安卓:layout_marginBottom="11dp"
        安卓:backgroundTint="@color/Blue"
        安卓:clickable="true"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:srcCompat="@drawable/forward" />



</安卓x.constraintlayout.widget.ConstraintLayout>



  </安卓x.constraintlayout.widget.ConstraintLayout>

下面是与前面的主XML相关的java类

public class StepThreeActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_step_three);

    initialization();
    characterInitialization();


    LayoutInflater inflater =
            (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
      inflater.inflate(R.layout.card1,
              constraintLayout, true);  
}

这是卡片1。xml代码

<?xml version="1.0" encoding="utf-8"?>
<安卓x.constraintlayout.widget.ConstraintLayout
安卓:id="@+id/constraintLayout2c"
xmlns:安卓="http://schemas.安卓.com/apk/res/安卓"
xmlns:app="http://schemas.安卓.com/apk/res-auto"
xmlns:tools="http://schemas.安卓.com/tools"
安卓:layout_width="wrap_content"
安卓:layout_height="wrap_content">


<安卓x.constraintlayout.widget.ConstraintLayout
    安卓:layout_width="347dp"
    安卓:layout_height="366dp"
    安卓:layout_marginTop="16dp"
    安卓:background="@drawable/card"
    安卓:backgroundTint="#FBD5D8"
    安卓:elevation="@dimen/cardview_default_elevation"
    安卓:padding="13dp"
    app:layout_constraintEnd_toEndOf="parent"
    app:layout_constraintHorizontal_bias="0.0"
    app:layout_constraintStart_toStartOf="parent"
    app:layout_constraintTop_toTopOf="parent">

    <ImageView
        安卓:id="@+id/imageView1"
        安卓:layout_width="111dp"
        安卓:layout_height="149dp"
        安卓:layout_marginStart="40dp"
        安卓:layout_marginTop="16dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:srcCompat="@mipmap/a1" />

    <ImageView
        安卓:id="@+id/imageView2"
        安卓:layout_width="106dp"
        安卓:layout_height="150dp"
        安卓:layout_marginStart="172dp"
        安卓:layout_marginTop="168dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:srcCompat="@mipmap/a2" />

    <ImageView
        安卓:id="@+id/imageView3"
        安卓:layout_width="112dp"
        安卓:layout_height="152dp"
        安卓:layout_marginStart="40dp"
        安卓:layout_marginTop="164dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:srcCompat="@mipmap/a3" />

    <ImageView
        安卓:id="@+id/imageView4"
        安卓:layout_width="115dp"
        安卓:layout_height="153dp"
        安卓:layout_marginStart="172dp"
        安卓:layout_marginTop="16dp"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent"
        tools:srcCompat="@mipmap/a4" />
</安卓x.constraintlayout.widget.ConstraintLayout>

</安卓x.constraintlayout.widget.ConstraintLayout>

共 (2) 个答案

  1. # 1 楼答案

    问题是,这4张卡的图片没有出现,因为你实际上没有将它们添加到布局中

    card1的片段。xml:

    tools:srcCompat="@mipmap/a1"
    tools:srcCompat="@mipmap/a2"
    tools:srcCompat="@mipmap/a3"
    tools:srcCompat="@mipmap/a4"
    

    当你使用tools名称空间时,你只会影响android studio布局验证窗格中的布局,而这不会影响你运行应用程序时的布局

    有关toolsnamesapce的更多信息,您可以查看documentation

    要解决这个问题,需要用app名称空间替换tools。所以你的名片。xml布局将是:

    <?xml version="1.0" encoding="utf-8"?>
    <androidx.constraintlayout.widget.ConstraintLayout
    android:id="@+id/constraintLayout2c"
    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="wrap_content"
    android:layout_height="wrap_content">
    
    
    <androidx.constraintlayout.widget.ConstraintLayout
        android:layout_width="347dp"
        android:layout_height="366dp"
        android:layout_marginTop="16dp"
        android:background="@drawable/card"
        android:backgroundTint="#FBD5D8"
        android:elevation="@dimen/cardview_default_elevation"
        android:padding="13dp"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintHorizontal_bias="0.0"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">
    
        <ImageView
            android:id="@+id/imageView1"
            android:layout_width="111dp"
            android:layout_height="149dp"
            android:layout_marginStart="40dp"
            android:layout_marginTop="16dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@mipmap/a1" />
    
        <ImageView
            android:id="@+id/imageView2"
            android:layout_width="106dp"
            android:layout_height="150dp"
            android:layout_marginStart="172dp"
            android:layout_marginTop="168dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@mipmap/a2" />
    
        <ImageView
            android:id="@+id/imageView3"
            android:layout_width="112dp"
            android:layout_height="152dp"
            android:layout_marginStart="40dp"
            android:layout_marginTop="164dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@mipmap/a3" />
    
        <ImageView
            android:id="@+id/imageView4"
            android:layout_width="115dp"
            android:layout_height="153dp"
            android:layout_marginStart="172dp"
            android:layout_marginTop="16dp"
            app:layout_constraintStart_toStartOf="parent"
            app:layout_constraintTop_toTopOf="parent"
            app:srcCompat="@mipmap/a4" />
    </androidx.constraintlayout.widget.ConstraintLayout>
    
    </androidx.constraintlayout.widget.ConstraintLayout>
    
  2. # 2 楼答案

    你真的需要用这种方式膨胀布局吗

    你不能把这个布局包括进去吗

    <include layout="@layout/card1 ... />
    

    整个xml文件:

    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/constraintLayout2"
        android:layout_width="374dp"
        android:layout_height="635dp"
        android:background="@drawable/card"
        android:backgroundTint="@color/white"
        android:elevation="@dimen/cardview_default_elevation"
        android:padding="13dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toTopOf="parent">
    
        <include layout="@layout/card1 ... />
    
        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/back"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginStart="5dp"
            android:layout_marginBottom="11dp"
            android:backgroundTint="@color/Blue"
            android:clickable="true"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintStart_toStartOf="parent"
            app:srcCompat="@drawable/back" />
    
        <com.google.android.material.floatingactionbutton.FloatingActionButton
            android:id="@+id/forward"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginBottom="11dp"
            android:backgroundTint="@color/Blue"
            android:clickable="true"
            app:layout_constraintBottom_toBottomOf="parent"
            app:layout_constraintEnd_toEndOf="parent"
            app:srcCompat="@drawable/forward" />
         </androidx.constraintlayout.widget.ConstraintLayout>
    </androidx.constraintlayout.widget.ConstraintLayout>