在下面的代码中,父级线性布局中的总重量小于其子级的总重量,因此我希望滚动条能够正常工作。第一个子级覆盖整个屏幕,另一个子级在屏幕下方,但没有滚动。
<?xml version="1.0" encoding="utf-8"?>
<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"
tools:context=".ActivityHome">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp"
android:orientation="vertical"
android:weightSum="4">
<!--First children-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="13"
android:orientation="vertical">
</LinearLayout>
<!--Second children-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="0dp"
android:layout_weight="1"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
</ScrollView>
我只需要使用layout_height。该怎么办?
答案 0 :(得分:2)
这里的问题是android:weightSum="4"
。这显然与ScrollView
的用途相反。从布局中删除权重如果“视图”超出了屏幕,它将自动滚动。例如尝试:-
<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"
tools:context=".ActivityHome">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_margin="16dp"
android:orientation="vertical"
>
<!--First children-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="300dp"
android:background="@android:color/black"
android:orientation="vertical">
</LinearLayout>
<!--Second children-->
<LinearLayout
android:layout_width="match_parent"
android:layout_height="400dp"
android:background="@android:color/holo_red_light"
android:orientation="vertical">
</LinearLayout>
</LinearLayout>
</ScrollView>
如果要使用android:fillViewport
,请参见This Thread。