我有一个具有两个视图的布局,它们的行为应如下所示:
可以在此处找到说明所需行为的图像(无法上传):
看来,问题在于将EditText限制在一定的高度,这样它才不会将另一个View推离屏幕底部。还是要给另一个“视图”一个属性,使其始终显示在屏幕上,我不知道。
我尝试了几种不同的方法来通过xml解决它。我附加的那一项仅通过限制EditText中的行数而起作用-我稍后将不得不根据设备的分辨率以编程方式对其进行更改。因此,这并不是很理想。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/tripNotes_toolbar_layout"
layout="@layout/toolbar_details" />
<android.support.constraint.ConstraintLayout
android:id="@+id/tripNotes_constraintLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
style="@style/CardStyle"
android:layout_gravity="top"
android:layout_marginLeft="@dimen/card_outer_margin_left"
android:layout_marginRight="@dimen/card_outer_margin_left">
<EditText
android:id="@+id/tripNotes_editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@null"
android:hint="Put your notes here"
android:inputType="textMultiLine|textCapWords"
android:lines="12"
android:maxLength="1000"
android:maxLines="12"
android:minLines="1"
android:textColor="@color/grey_12"
app:layout_constraintTop_toTopOf="parent" />
<View
android:id="@+id/tripNotes_pictureGrid"
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_toBottomOf="@id/tripNotes_editText"
app:layout_constraintVertical_bias="0"
app:layout_constraintVertical_weight="1"/>
</android.support.constraint.ConstraintLayout>
</LinearLayout>
实际结果是,如果不限制EditText中的行数,则将其他View推出屏幕,但我希望使用alyout属性的解决方案。
答案 0 :(得分:0)
您可以将编辑文本包装到滚动视图中
您的布局看起来像这样:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<include
android:id="@+id/tripNotes_toolbar_layout"
layout="@layout/toolbar_details" />
<android.support.constraint.ConstraintLayout
android:id="@+id/tripNotes_constraintLayout"
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/CardStyle"
android:layout_gravity="top"
android:layout_marginLeft="@dimen/card_outer_margin_left"
android:layout_marginRight="@dimen/card_outer_margin_left">
<ScrollView
android:id="@+id/tripNotes_editTextContainer"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintBottom_toTopOf="@+id/tripNotes_pictureGrid">
<EditText
android:id="@+id/tripNotes_editText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_margin="8dp"
android:background="@null"
android:hint="Put your notes here"
android:inputType="textMultiLine|textCapWords"
android:textColor="@color/grey_12" />
</ScrollView>
<View
android:id="@+id/tripNotes_pictureGrid"
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@id/tripNotes_editTextContainer"
app:layout_constraintTop_toBottomOf="@id/tripNotes_editTextContainer"
app:layout_constraintVertical_bias="0"
app:layout_constraintVertical_weight="1"/>
</android.support.constraint.ConstraintLayout>
</LinearLayout>
所做的更改:
match_parent
更改为wrap_content
app:layout_constraintTop_toTopOf="parent"
(不再需要,因为它包装在滚动视图中)maxLines, lines, minLines and maxLength
个属性app:layout_constraintStart_toStartOf="parent"
至app:layout_constraintStart_toEndOf="@id/tripNotes_editTextContainer"
app:layout_constraintTop_toBottomOf="@id/tripNotes_editText"
至app:layout_constraintTop_toBottomOf="@id/tripNotes_editTextContainer"
底部视图将位于Edittext的正下方,并向下直到屏幕底部,并且EditText将变为可滚动