CoordinatorLayout三个孩子不能互相躲避

时间:2018-10-25 15:11:49

标签: android android-layout android-coordinatorlayout android-appbarlayout

我有一个带有三个子项的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>

0 个答案:

没有答案