Android ScrollView不滚动

时间:2019-03-13 12:49:27

标签: android xml scrollview

在下面的代码中,父级线性布局中的总重量小于其子级的总重量,因此我希望滚动条能够正常工作。第一个子级覆盖整个屏幕,另一个子级在屏幕下方,但没有滚动。

<?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。该怎么办?

1 个答案:

答案 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