26

MY CODE (およびその他): 次のようなコーディネーター レイアウトがあります。

<android.support.design.widget.CoordinatorLayout
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">

    <android.support.design.widget.AppBarLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:fitsSystemWindows="true">

        <android.support.design.widget.CollapsingToolbarLayout
            android:id="@+id/collapse_toolbar"
            android:layout_width="match_parent"
            android:layout_height="280dp"
            android:fitsSystemWindows="true"
            app:contentScrim="@color/transparent"
            app:layout_scrollFlags="scroll|exitUntilCollapsed">

            <include layout="@layout/top" /> <!-- A RelativeLayout -->

            <android.support.v7.widget.Toolbar
                android:id="@+id/MyToolbar"
                android:layout_width="match_parent"
                android:layout_height="64dp"
                app:layout_collapseMode="parallax">

            </android.support.v7.widget.Toolbar>

        </android.support.design.widget.CollapsingToolbarLayout>

    </android.support.design.widget.AppBarLayout>

    <FrameLayout
        android:id="@+id/content"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        app:layout_behavior="@string/appbar_scrolling_view_behavior">

        <!-- Main content here -->

    </FrameLayout>

</android.support.design.widget.CoordinatorLayout>

フレーム レイアウト内で、下部に配置された編集テキストでカスタム ビューを膨らませています。編集テキストとカスタム ビューは正常に表示されます。

マニフェストで android:windowSoftInputMode="adjustResize|stateHidden" を定義しました。

私の問題: 編集テキストをタップしてソフトキーボードを表示すると、FrameLayout のサイズを変更する代わりに、その下のコンテンツに重なってしまいます。ソフトキーボードが表示されたときに FrameLayout のサイズを変更できませんでした。どんな助けでも大歓迎です

私が試したこと:

  1. 設計サポート ライブラリを 22.2.1 に更新
  2. FrameLayout の属性として android:layout_gravity="fill_vertical" を追加しました。
4

9 に答える 9

17

これはデザイン サポート ライブラリのもう 1 つのバグであり、すぐに修正する予定はないようです。

確認済みですが、おそらくすぐに修正されることはありません。adjustResize にはいくつかの優れたユースケースがありますが、AppBarLayout を CollapsingToolbarLayout とともに使用することはそれらの 1 つではありません。

デザイン サポート ライブラリの開発中に、誰も aEditTextに aCoordinatorLayoutを追加しようとしなかったのは気がかりです。android:windowSoftInputMode="adjustResize"

于 2016-08-23T11:08:05.780 に答える
10

CoordinatorLayoutのバグを解決するためにこれを使用しています

BottomSheetFragment の onCreateDialog で

KeyboardUtil(getActivity(), view);

また

アクティビティ用

new KeyboardUtil(this, findViewById(R.id.fragment_container));

この Util クラスを使用して

Java バージョン: https://github.com/mikepenz/MaterialDrawer/blob/aa9136fb4f5b3a80460fe5f47213985026d20c88/library/src/main/java/com/mikepenz/materialdrawer/util/KeyboardUtil.java

Kotlin バージョン: https://gist.github.com/agustinsivoplas/6f80233699aebebd512542503ea32682 クレジット:Mikepenz、Agustinsivoplas

于 2017-02-17T09:23:21.207 に答える