在Fragment
上绘制的ConstraintLayout
中有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>
如何避免重叠?
答案 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">