CoordinatorLayout трое детей не могут увернуться друг от друга - PullRequest
0 голосов
/ 25 октября 2018

У меня есть 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>
...