视图是否重叠,约束布局?

时间:2019-03-29 19:14:27

标签: android android-constraintlayout

Fragment上绘制的ConstraintLayout中有3个主要视图。

  1. 标题
  2. 可滚动内容
  3. 脚步

页眉和页脚位于固定位置,中间内容/视图应可滚动。在我的情况下,中间内容与 header footer

重叠

下面是我的xml代码

   <?xml version="1.0" encoding="utf-8"?>
 <FrameLayout 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:background="@android:color/white"
tools:context=".home.BookingFragment">

<!-- TODO: Update blank fragment layout -->
<androidx.constraintlayout.widget.ConstraintLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/title"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:layout_marginBottom="10dp"
        android:gravity="center"
        android:text="REGISTRATION FORM"
        android:textColor="@android:color/black"
        android:textSize="20sp"
        android:textStyle="bold"
        app:layout_constraintTop_toTopOf="parent" />

    <ScrollView
        android:id="@+id/scrollContent"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginStart="20dp"
        android:layout_marginTop="20dp"
        android:layout_marginEnd="20dp"
        android:layout_marginBottom="20dp"
        app:layout_constraintBottom_toTopOf="@+id/bookingLayout"
        app:layout_constraintTop_toBottomOf="@+id/title">

        <androidx.constraintlayout.widget.ConstraintLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content">


            <TextView
                android:id="@+id/nameTitle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:text="Name"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                android:textStyle="bold"
                app:layout_constraintTop_toTopOf="parent" />

            <androidx.appcompat.widget.AppCompatEditText
                android:id="@+id/name"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="@drawable/edittext_bg"
                android:hint="Dr. Ramesh Tendulkar"
                android:maxLength="30"
                android:padding="10dp"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                app:layout_constraintTop_toBottomOf="@+id/nameTitle" />

            <TextView
                android:id="@+id/ageTitle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:text="Age"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                android:textStyle="bold"
                app:layout_constraintTop_toBottomOf="@+id/name" />

            <androidx.appcompat.widget.AppCompatEditText
                android:id="@+id/age"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="@drawable/edittext_bg"
                android:hint="35"
                android:inputType="number"
                android:maxLength="2"
                android:padding="10dp"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                app:layout_constraintTop_toBottomOf="@+id/ageTitle" />

            <TextView
                android:id="@+id/genderTitle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:text="Gender"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                android:textStyle="bold"
                app:layout_constraintTop_toBottomOf="@+id/age" />

            <TextView
                android:id="@+id/gender"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="@drawable/edittext_bg"
                android:drawableRight="@drawable/ic_arrow_down"
                android:padding="10dp"
                android:text="Male"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                app:layout_constraintTop_toBottomOf="@+id/genderTitle" />

            <TextView
                android:id="@+id/designationTitle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:text="Designation"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                android:textStyle="bold"
                app:layout_constraintTop_toBottomOf="@+id/gender" />

            <androidx.appcompat.widget.AppCompatEditText
                android:id="@+id/designation"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="@drawable/edittext_bg"
                android:hint="Senior"
                android:maxLength="40"
                android:padding="10dp"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                app:layout_constraintTop_toBottomOf="@+id/designationTitle" />

            <TextView
                android:id="@+id/instituteTitle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:text="Institute"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                android:textStyle="bold"
                app:layout_constraintTop_toBottomOf="@+id/designation" />

            <androidx.appcompat.widget.AppCompatEditText
                android:id="@+id/institution"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="@drawable/edittext_bg"
                android:hint="Liver Foundation "
                android:maxLength="40"
                android:padding="10dp"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                app:layout_constraintTop_toBottomOf="@+id/instituteTitle" />

            <TextView
                android:id="@+id/addressTitle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:text="Address"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                android:textStyle="bold"
                app:layout_constraintTop_toBottomOf="@+id/institution" />

            <androidx.appcompat.widget.AppCompatEditText
                android:id="@+id/address"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="@drawable/edittext_bg"
                android:gravity="top"
                android:hint="AM-40, DELHI"
                android:maxLength="100"
                android:minHeight="80dp"
                android:padding="10dp"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                app:layout_constraintTop_toBottomOf="@+id/addressTitle" />

            <TextView
                android:id="@+id/cityTitle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:text="City"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                android:textStyle="bold"
                app:layout_constraintTop_toBottomOf="@+id/address" />

            <androidx.appcompat.widget.AppCompatEditText
                android:id="@+id/city"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="@drawable/edittext_bg"
                android:gravity="top"
                android:hint="DELHI"
                android:maxLength="40"
                android:padding="10dp"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                app:layout_constraintTop_toBottomOf="@+id/cityTitle" />

            <TextView
                android:id="@+id/mobileTitle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:text="Mobile"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                android:textStyle="bold"
                app:layout_constraintTop_toBottomOf="@+id/city" />

            <androidx.appcompat.widget.AppCompatEditText
                android:id="@+id/mobile"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="@drawable/edittext_bg"
                android:gravity="top"
                android:hint="999999999"
                android:inputType="number"
                android:maxLength="10"
                android:padding="10dp"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                app:layout_constraintTop_toBottomOf="@+id/mobileTitle" />

            <TextView
                android:id="@+id/emailTitle"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="20dp"
                android:text="Email"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                android:textStyle="bold"
                app:layout_constraintTop_toBottomOf="@+id/mobile" />

            <androidx.appcompat.widget.AppCompatEditText
                android:id="@+id/email"
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:background="@drawable/edittext_bg"
                android:gravity="top"
                android:hint="999999999"
                android:inputType="textEmailAddress"
                android:maxLength="40"
                android:padding="10dp"
                android:textColor="@android:color/black"
                android:textSize="16sp"
                app:layout_constraintTop_toBottomOf="@+id/emailTitle" />
        </androidx.constraintlayout.widget.ConstraintLayout>
    </ScrollView>


    <androidx.constraintlayout.widget.ConstraintLayout
        android:id="@+id/bookingLayout"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginBottom="20dp"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent">

        <TextView
            android:id="@+id/fess"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:gravity="center"
            android:text="REGISTRATION FEES : Rs.2000"
            android:textColor="@android:color/black"
            android:textSize="18sp"
            android:textStyle="bold"
            app:layout_constraintTop_toTopOf="parent" />

        <Button
            android:id="@+id/bookEvent"
            android:layout_width="200dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:background="@drawable/button_bg"
            android:text="BOOK"
            android:textColor="@android:color/white"
            app:layout_constraintLeft_toLeftOf="parent"
            app:layout_constraintRight_toRightOf="parent"
            app:layout_constraintTop_toBottomOf="@+id/fess" />

        <TextView
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:gravity="center"
            android:text="Drawn in favor of Foundation"
            android:textColor="@android:color/black"
            android:textSize="15sp"
            app:layout_constraintTop_toBottomOf="@+id/bookEvent" />
    </androidx.constraintlayout.widget.ConstraintLayout>
</androidx.constraintlayout.widget.ConstraintLayout>


  </FrameLayout>

我得到的输出是这个 enter image description here

如何避免重叠?

1 个答案:

答案 0 :(得分:2)

使用 0dp 作为ScrollView的高度,而不是 wrap_content

 <ScrollView
    android:id="@+id/scrollContent"
    android:layout_width="match_parent"
    android:layout_height="0dp"   <!--Change Here-->
    android:layout_marginStart="20dp"
    android:layout_marginTop="20dp"
    android:layout_marginEnd="20dp"
    android:layout_marginBottom="20dp"
    app:layout_constraintBottom_toTopOf="@+id/bookingLayout"
    app:layout_constraintTop_toBottomOf="@+id/title">