java - 嵌套在约束布局中
问题描述
我是 android 应用程序开发的新手,正在尝试构建一个简单的员工管理应用程序。目的是重用尽可能多的活动。现在,我基本上有四个活动 - 一个注册表单,所有员工的列表(基本上使用单个员工记录布局的多个实例),一个更新记录和一个删除记录。我计划使用单个活动进行更新(将使用注册表的布局)和删除(将使用单个记录布局)操作。为此,我想启用注册表单布局以进行更新并禁用它,并使用附加的“删除”按钮启用单个记录布局以删除记录,反之亦然。由于我使用的是约束布局,因此我想包含一个包含必要布局的容器。
我尝试使用约束布局作为约束布局内的容器,但是当我尝试使用外部布局中的对象约束内部布局时,它会导致问题。我尝试在 xml 中以及通过鼠标单击和拖动来编写约束。基本上我无法用外部约束布局中的对象来约束内部约束布局。
我打算重用的用于更新/删除活动的 XML:
<android.support.constraint.ConstraintLayout
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">
<TextView
android:id="@+id/textView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:text="Enter ID"
android:textColor="#000"
app:layout_constraintBaseline_toBaselineOf="@+id/editText"
app:layout_constraintEnd_toStartOf="@+id/editText"
app:layout_constraintStart_toStartOf="parent" />
<EditText
android:id="@+id/editText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="44dp"
android:layout_marginRight="44dp"
android:ems="10"
android:inputType="number"
android:text="Name"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent"
android:background="@drawable/form_drawable"
android:paddingEnd="8dp"
android:paddingStart="8dp"
android:paddingLeft="8dp"
android:paddingRight="8dp"
android:textColor="#FFF"/>
</android.support.constraint.ConstraintLayout>
单个员工记录的 XML:
<android.support.constraint.ConstraintLayout 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.support.v7.widget.CardView
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:text="Name"
android:textColor="#000"
app:layout_constraintBaseline_toBaselineOf="@+id/editText2"
app:layout_constraintEnd_toStartOf="@+id/editText2"
app:layout_constraintStart_toEndOf="@+id/textView6" />
<EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:layout_marginEnd="64dp"
android:layout_marginRight="64dp"
android:background="@drawable/form_drawable"
android:ems="10"
android:inputType="textPersonName"
android:paddingStart="8dp"
android:paddingLeft="8dp"
android:paddingEnd="8dp"
android:paddingRight="8dp"
android:textColor="#FFF"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:text="Designation"
android:textColor="#000"
app:layout_constraintBaseline_toBaselineOf="@+id/editText3"
app:layout_constraintEnd_toStartOf="@+id/editText3"
app:layout_constraintStart_toEndOf="@+id/textView6" />
<EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="64dp"
android:layout_marginRight="64dp"
android:background="@drawable/form_drawable"
android:ems="10"
android:inputType="textPersonName"
android:paddingStart="8dp"
android:paddingLeft="8dp"
android:paddingEnd="8dp"
android:paddingRight="8dp"
android:textColor="#FFF"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editText2" />
<TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:text="Address"
android:textColor="#000"
app:layout_constraintBaseline_toBaselineOf="@+id/editText4"
app:layout_constraintEnd_toStartOf="@+id/editText4"
app:layout_constraintStart_toEndOf="@+id/textView6" />
<EditText
android:id="@+id/editText4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="64dp"
android:layout_marginRight="64dp"
android:background="@drawable/form_drawable"
android:ems="10"
android:inputType="textPersonName"
android:paddingStart="8dp"
android:paddingLeft="8dp"
android:paddingEnd="8dp"
android:paddingRight="8dp"
android:textColor="#FFF"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editText3" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginEnd="8dp"
android:layout_marginRight="8dp"
android:text="Phone
"
android:textColor="#000"
app:layout_constraintBaseline_toBaselineOf="@+id/editText5"
app:layout_constraintEnd_toStartOf="@+id/editText5"
app:layout_constraintStart_toEndOf="@+id/textView6" />
<EditText
android:id="@+id/editText5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="20dp"
android:layout_marginEnd="64dp"
android:layout_marginRight="64dp"
android:background="@drawable/form_drawable"
android:ems="10"
android:inputType="textPersonName"
android:paddingStart="8dp"
android:paddingLeft="8dp"
android:paddingEnd="8dp"
android:paddingRight="8dp"
android:textColor="#FFF"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintTop_toBottomOf="@+id/editText4" />
<TextView
android:id="@+id/textView6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="8dp"
android:layout_marginLeft="8dp"
android:layout_marginTop="20dp"
android:text="ID"
android:textColor="#000"
app:layout_constraintEnd_toStartOf="@+id/textView2"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</android.support.constraint.ConstraintLayout>
</android.support.v7.widget.CardView>
</android.support.constraint.ConstraintLayout>
报名表xml:
<android.support.constraint.ConstraintLayout 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">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="8dp"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintHorizontal_bias="0.0"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="16dp"
android:orientation="vertical">
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Fields marked with * are compulsory." />
<TextView
android:id="@+id/tvFirstName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="First Name *"
android:textColor="@android:color/secondary_text_light"
android:textSize="18sp" />
<EditText
android:id="@+id/etFirstName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/form_drawable"
android:ems="10"
android:inputType="textPersonName"
android:paddingStart="8dp"
android:paddingLeft="8dp"
android:paddingEnd="8dp"
android:text="MAnish"
android:textColor="#FFF"
android:textSize="24sp" />
<TextView
android:id="@+id/tvMiddleName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Middle Name"
android:textColor="@android:color/secondary_text_light"
android:textSize="18sp" />
<EditText
android:id="@+id/etMiddleName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/form_drawable"
android:ems="10"
android:inputType="textPersonName"
android:paddingStart="8dp"
android:paddingLeft="8dp"
android:paddingEnd="8dp"
android:text="JOshi"
android:textColor="#FFF"
android:textSize="24sp" />
<TextView
android:id="@+id/tvLastName"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Last Name *"
android:textColor="@android:color/secondary_text_light"
android:textSize="18sp" />
<EditText
android:id="@+id/etLastName"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/form_drawable"
android:ems="10"
android:inputType="textPersonName"
android:paddingStart="8dp"
android:paddingLeft="8dp"
android:paddingEnd="8dp"
android:textColor="#FFF"
android:textSize="24sp" />
<TextView
android:id="@+id/tvAddress"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Address *"
android:textColor="@android:color/secondary_text_light"
android:textSize="18sp" />
<EditText
android:id="@+id/etAddress"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/form_drawable"
android:ems="10"
android:inputType="textPostalAddress"
android:paddingStart="8dp"
android:paddingLeft="8dp"
android:paddingEnd="8dp"
android:textColor="#FFF"
android:textSize="24sp" />
<TextView
android:id="@+id/tvPhone"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Phone *"
android:textColor="@android:color/secondary_text_light"
android:textSize="18sp" />
<EditText
android:id="@+id/etPhone"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/form_drawable"
android:ems="10"
android:inputType="phone"
android:paddingStart="8dp"
android:paddingLeft="8dp"
android:paddingEnd="8dp"
android:textColor="#FFF"
android:textSize="24sp" />
<TextView
android:id="@+id/tvDesignation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="16dp"
android:text="Designation *"
android:textColor="@android:color/secondary_text_light"
android:textSize="18sp" />
<EditText
android:id="@+id/etDesignation"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/form_drawable"
android:ems="10"
android:inputType="textPersonName"
android:paddingStart="8dp"
android:paddingLeft="8dp"
android:paddingEnd="8dp"
android:textColor="#FFF"
android:textSize="24sp" />
<Button
android:id="@+id/button5"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="SAVE"
android:layout_marginTop="32dp"
android:background="@drawable/crud_btns"
android:textColor="#FFF"
android:textSize="30sp"/>
</LinearLayout>
</ScrollView>
</android.support.constraint.ConstraintLayout>
在更新/删除布局中,我想永久输入一个 ID。然后,根据所需的操作,我想显示注册表单,所有字段都填写了以前的数据,以便更新它。如果操作是删除,那么我只想显示具有给定 ID 的员工的详细信息(这样用户就不会删除错误的记录)以及一个删除按钮。任何输入将不胜感激。
解决方案
你没有constraint layout
在这里使用嵌套。您正在使用三种不同的约束布局。您必须创建一个主要约束布局,并且在该主要布局内您必须设计您的三个约束布局。
你的代码会像
#1st constraint-layout start(main-layout)#
#2nd constraint-layout start#
//xml code here
#2nd constraint-layout End#
#3rd constraint-layout start#
//xml code here
#3rd constraint-layout End#
#4th constraint-layout start#
//xml code here
#4th constraint-layout End#
#1st constraint-layout End(main-layout)#
所以基本上包括你所有的三合一constraint layouts
主要约束布局