Android 滚动视图不会填充父级 space

Android Scrollview Won't fill parent space

我有一个相对布局填满整个屏幕。我想在它的中间添加一个 scrollview 来包裹一堆内容,这样我就可以在显示软键盘时让它平移。但是,一旦我将其包装在滚动视图中,最底部的布局就会停止填充屏幕的其余部分。

这里是 XML 我把 ScrollView 注释掉了。

<include
    android:id="@+id/top_bar_with_save_button"
    layout="@layout/top_bar_with_save_button"/>

<FrameLayout
    android:id="@+id/log_entry_title_frame"
    android:layout_below="@id/top_bar_with_save_button"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"/>

<LinearLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@id/log_entry_title_frame"
    android:layout_alignParentBottom="true">

<!--
    <ScrollView
        android:layout_width="match_parent"
        android:layout_height="match_parent">
-->

        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:layout_below="@+id/log_entry_title_frame"
            android:orientation="vertical"
            android:background="#f00">

            <!-- Lots of stuff in here -->
            <EditText
                android:id="@+id/log_entry_notes"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:padding="8dp"
                android:gravity="top|left"/>

        </RelativeLayout>

<!--
    </ScrollView>
 -->
</LinearLayout>

看起来像这样:

但是一旦我从 ScrollView 中删除评论,它就会立即像这样压缩:

为什么会这样?我需要它填满屏幕上的整个 space,但我不知道发生了什么。谁能告诉我如何解决这个问题?谢谢!

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="match_parent">
    <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            ... >
滚动容器的

layout_height应该是"wrap_content".

您需要将 fillViewport="true" 属性添加到您的 ScrollView 标签。或者您可以使用 scrollView.setFillViewPort(true); 以编程方式添加它。否则,ScrollView 将换行到其子项的内容高度。