В Android я хочу получить вид прокрутки с фиксированной высотой на экране, а содержимое внутри также имеет фиксированную высоту.
Высота вида прокрутки равна 300 dp, прямой дочерний элемент (относительно layout) составляет 500dp, а расстояние просмотра текста от вершины составляет 301dp. Это означает, что после того, как я достиг текстового представления, у меня остается на 200 дп больше нижнего пространства для прокрутки от относительной высоты макета.
Мне удается создать желаемый эффект, используя XML ниже.
<ScrollView
android:layout_width="match_parent"
android:layout_height="300dp" >
<RelativeLayout
android:layout_width="match_parent"
android:background="#FFC0CB"
android:layout_height="500dp" >
<TextView
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:id="@+id/new_realm_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="301dp"
android:text="long text" />
</RelativeLayout>
</ScrollView>
Но вот проблема, если я изменю относительное расположение на расположение ограничений, теперь прокрутка будет прокручиваться только до текста View на высоте 310dp, не показывать 200dp пустого пространства внизу.
Может кто-нибудь объяснить, почему компоновка ограничений дает мне такое странное поведение? Согласно различиям между ConstraintLayout и RelativeLayout , макет ограничения "имеет двойную мощность как относительного макета, так и линейного макета", он должен быть в состоянии достичь того, чего может достичь относительный макет.