2015-08-18 4 views
3

У меня есть view, который содержит CoordinatorLayout, который обертывает AppBarLayout и NestedScrollView. Внутри NestedScrollView есть EditTextКоординаторLayout с NestedScrollView не изменяет размер с помощью adjustResize

У меня возникают проблемы с отображением мягкой клавиатуры ввода и правильной корректировкой размера view.

С обычным флагом android:windowSoftInputMode="adjustResize" все работает нормально, кроме случаев, когда вы скрываете ввод.

С открытием входа (изображение 2) NestedScrollView (со скучным серым фоном) сократился, поэтому вы можете перейти к ранее «покрытой» части. Все хорошо. Однако, как только вход скрыт (изображение 3), NestedScrollView не вырос, чтобы пополнить пространство, и вы можете увидеть его родительский CoordinatorLayout (который я покрасил в красный цвет).

enter image description hereenter image description hereenter image description here

Я попробовал этот ответ https://stackoverflow.com/a/31286789/726954, добавив myserious 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> 

ответ

4

Вы используете самую последнюю версию - 22.2.1? У меня были аналогичные проблемы с 22.2.0.

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

Следует признать, что 22.2.0 был сломан? – Graeme

+2

У 22.2.0 было много проблем, и в немного сложных случаях он показал это. Например, в RecyclerView scrollBy существует NPE, который иногда случается и возникают проблемы с анимацией строк, которые все еще находятся в 22.2.1 –