我有一个带有三个子项的CoordinatorLayout:一个AppBarLayout,一个NestedScrollView和一个带有按钮的底部ViewGroup。 NestedScrollView中有一些TextInputLayouts。
有时,如果我单击TextInputLayouts之一,则在出现键盘时,底部的ViewGroup会部分覆盖输入字段。这是因为滚动行为无法考虑按钮。
由于设置原因,我无法手动滚动任何内容。我也不能使用insetEdge,因为输入字段不是CoordinatorLayout的子级。最后,我不确定如何对AppBarLayout.ScrollViewBehavior进行子类化以使其工作。我尝试过的没有解决。
这是我布局的骨架:
<android.support.design.widget.AppBarLayout
android:fitsSystemWindows="true"
android:theme="@style/AppTheme.AppBarOverlay">
<android.support.design.widget.CollapsingToolbarLayout
android:id="@+id/ctbCreateCase"
android:layout_width="match_parent"
android:layout_height="match_parent"
app:contentScrim="@color/medshr_color_primary"
app:layout_scrollFlags="scroll|exitUntilCollapsed|snap">
<android.support.constraint.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
app:layout_collapseMode="parallax">
...
</android.support.constraint.ConstraintLayout>
<android.support.v7.widget.Toolbar
android:id="@+id/tbCreateCase"
android:layout_width="match_parent"
android:layout_height="wrap_content">
...
/>
</android.support.v7.widget.Toolbar>
</android.support.design.widget.CollapsingToolbarLayout>
</android.support.design.widget.AppBarLayout>
<android.support.v4.widget.NestedScrollView
android:id="@+id/svCreateCase"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_gravity="top"
android:clipToPadding="false"
android:scrollbarStyle="outsideOverlay"
android:scrollbars="vertical"
app:layout_behavior="@string/appbar_scrolling_view_behavior">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@android:color/white"
android:descendantFocusability="beforeDescendants"
android:focusable="true"
android:focusableInTouchMode="true"
android:orientation="vertical">
<TextInputLayout
android:id="@+id/ilCreateCaseTitle"
style="@style/text_input_layout_style"
android:layout_alignParentLeft="true"/>
<TextInputLayout
android:id="@+id/ilCreateCaseDescription"
style="@style/text_input_layout_style"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/ilCreateCaseTitle"
android:layout_alignParentLeft="true"/>
</RelativeLayout>
</android.support.v4.widget.NestedScrollView>
<android.support.constraint.ConstraintLayout
android:id="@+id/llCreateCaseBottomButtons"
android:layout_gravity="bottom|end">
</android.support.constraint.ConstraintLayout>
</android.support.design.widget.CoordinatorLayout>