Android 滚动视图中的约束布局高度无效
Android Constraint Layout height inside scrollview have no effect
在Android中,我想在屏幕上实现一个固定高度的滚动视图,里面的内容也是固定高度的。
滚动视图高度为300dp,直接子视图(相对布局)为500dp,文本视图距顶部的距离为301dp。这意味着在我到达文本视图后,底部多了 200dp space 供我从相对布局高度滚动。
我设法使用下面的 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>
但问题来了,如果我将相对布局更改为约束布局,现在滚动只会向上滚动到高度为 310dp 的文本视图,而不是显示底部的 200dp 空 space .
有人可以解释为什么约束布局给我这种奇怪的行为吗?
根据,constraint layout"has dual power of both Relative Layout as well as Linear layout",relative layout能达到什么应该能达到什么
试试这个:
<ScrollView android:layout_width="match_parent"
android:layout_height="300dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:background="#FFC0CB"
android:minHeight="500dp"
android:layout_height="500dp" >
<TextView
android:id="@+id/new_realm_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="301dp"
android:text="long text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
约束布局中似乎存在错误,或者布局高度无法应用于滚动视图中的约束布局,但您可以在约束布局中使用最小高度属性。
在Android中,我想在屏幕上实现一个固定高度的滚动视图,里面的内容也是固定高度的。
滚动视图高度为300dp,直接子视图(相对布局)为500dp,文本视图距顶部的距离为301dp。这意味着在我到达文本视图后,底部多了 200dp space 供我从相对布局高度滚动。
我设法使用下面的 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>
但问题来了,如果我将相对布局更改为约束布局,现在滚动只会向上滚动到高度为 310dp 的文本视图,而不是显示底部的 200dp 空 space .
有人可以解释为什么约束布局给我这种奇怪的行为吗?
根据
试试这个:
<ScrollView android:layout_width="match_parent"
android:layout_height="300dp">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:background="#FFC0CB"
android:minHeight="500dp"
android:layout_height="500dp" >
<TextView
android:id="@+id/new_realm_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="301dp"
android:text="long text"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent" />
</androidx.constraintlayout.widget.ConstraintLayout>
</ScrollView>
约束布局中似乎存在错误,或者布局高度无法应用于滚动视图中的约束布局,但您可以在约束布局中使用最小高度属性。