在约束布局中嵌套

时间:2019-05-18 13:37:13

标签: java android

我是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的员工的详细信息(这样用户就不会删除错误的记录)以及一个删除按钮。 任何输入将不胜感激。

1 个答案:

答案 0 :(得分:1)

您此处没有使用嵌套的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都包含在一个 Main 约束布局中