ScrollView 白色 space 在底部

ScrollView white space at bottom

我在使用 ScrollView 时遇到问题,它在底部留下空白 space。它填充了少量 TextView 和 GridView,应该填充整个 RelativeLayout 父级。

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    tools:context=".showPictures">
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">
        <LinearLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:orientation="vertical">
            <TextView.../>
            <GridView.../>
        ...
        </LinearLayout>
    </ScrollView>
</RelativeLayout>

有人知道哪里出了问题吗?

为滚动视图中的每个子项赋予权重,包括值为 1 的线性布局

使你的相对布局高度与父级匹配,在你的滚动视图中也使用 android:fillViewPort = "true"

<RelativeLayout 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"
    tools:context=".showPictures">
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:fillViewport="true">

//...

您可以使用此代码来避免滚动视图底部的额外填充:

android:overScrollMode="never"

在我的例子中,我在 ScrollView 中有一个 GridView 导致了这个问题。结果是 GridLayout 中的 layout_gravity 因为 'center' 导致了这个问题。

'center_horizontal' 无论如何对 ScrollView 更有意义,但是我在完成原始布局后添加了 ScrollView(使用 'center'),当我看到元素离开屏幕时一些设备,因此问题。

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >

    <GridLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center_horizontal"  // having this as android:layout_gravity="center" causes extra space at bottom!
        android:columnCount="2">

        ....