有可滚动底部视图的正确方法是什么?
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:fillViewport="true">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/white"
android:orientation="vertical">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
style="@style/wrnTextP1"
android:text="Ok , batatas "/>
<android.support.v4.widget.Space
android:layout_height="0dp"
android:layout_width="match_parent"
android:layout_weight="1" />
<Button
style="@style/FullWidthButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:text="Chega por hoje!" />
</LinearLayout>
在预览中它的looke很好,但是当我在模拟器上运行时,视图(在这种情况下:按钮)它根本不在底部。
答案 0 :(得分:1)
我认为你误解了ScrollView
是如何被使用的。 ScrollView的LinearLayout
子项具有match_parent
高度...如果您的ScrollView与屏幕高度相同,且LinearLayout与ScrollView的高度相同,则没有任何内容滚动(所有内容都是屏幕的大小)。
ScrollView
的直接孩子要么具有固定的高度(例如2000dp
),要么使用wrap_content
。
如果您使用固定高度,那么您的其余代码&#34;可以使用&#34 ;;您可以使用Space
元素使用layout_weight
将最后一个视图向下推到LinearLayout的底部。但是,如果您正在使用wrap_content
,则这是不可能的(因为layout_weight
消耗的空间没有&#34;额外的#34}。
相反,你可以考虑把&#34;底部&#34;查看ScrollView
的外部。像这样:
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1">
...
</ScrollView>
<Button
style="@style/FullWidthButton"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Chega por hoje!" />
</LinearLayout>