带有 NestedScrollView 的 CoordinatorLayout 不会使用 adjustResize 调整大小

CoordinatorLayout with NestedScrollView doesn't resize with adjustResize

我有一个 view,它包含一个 CoordinatorLayout,它包含一个 AppBarLayout 和一个 NestedScrollView。在 NestedScrollView 里面有一个 EditText

我在显示软输入键盘和正确调整 view 大小时遇到​​问题。

使用通常的标志 android:windowSoftInputMode="adjustResize" 一切似乎都工作正常,除了隐藏输入时。

打开输入(图 2)后,NestedScrollView(带有乏味的灰色背景)已缩小,因此您可以滚动到之前的 "covered" 部分。都好。然而,一旦输入被隐藏(图 3),NestedScrollView 就没有增长到重新填充 space 并且你可以看到它的父级 CoordinatorLayout(我已经在获取红色).

我试过这个答案 ,添加了一个神秘的 android:layout_gravity="fill_vertical" 标签,但这所做的只是限制了 NestedScrollView 的高度,最终切断了子元素(尽管它确实解决了它拒绝重新填充容器的问题。

我是不是遗漏了什么或者这是 CoordinatorLayout

的错误

这是我的模型 XML:

<?xml version="1.0" encoding="utf-8"?>
<android.support.design.widget.CoordinatorLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/red_granate">

    <android.support.design.widget.AppBarLayout
        android:id="@+id/actionBarContainer"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true">

        <View
            android:id="@+id/statusBarPadding"
            android:layout_width="match_parent"
            android:layout_height="0dp"
            android:background="@color/primary_material_dark"/>

        <android.support.v7.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="?android:attr/actionBarSize"
            android:background="@color/primary_material_dark"
            android:theme="@style/ThemeOverlay.AppCompat.Dark.ActionBar"
            app:layout_scrollFlags="scroll|enterAlways"/>
    </android.support.design.widget.AppBarLayout>

    <android.support.v4.widget.NestedScrollView
        android:background="@color/grey"
        android:id="@+id/nestedScrollView"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <FrameLayout
            android:layout_width="match_parent"
            android:layout_height="2000dp">

            <EditText
                android:layout_width="100dp"
                android:layout_height="wrap_content"
                android:layout_marginTop="1900dp"/>
        </FrameLayout>
    </android.support.v4.widget.NestedScrollView>
</android.support.design.widget.CoordinatorLayout>

您使用的是最新版本 - 22.2.1 吗?我在 22.2.0 上遇到了类似的问题。

compile 'com.android.support:design:22.2.1'
compile 'com.android.support:recyclerview-v7:22.2.1'