web-dev-qa-db-ja.com

キーボードの上にFAB(フローティングアクションボタン)を設定します

すでに尋ねました here しかし適切な答えなし。

FABをキーボードの上に浮かせたい。それでおしまい。

例えば

  1. Android Studioで新しいBlank Activityテンプレートプロジェクトを開きます
  2. Hello World TextViewEditTextに変更します
  3. 下の画像をご覧ください:

enter image description here

43
David

それは非常に簡単であることが判明し、

  • Android:windowSoftInputMode="adjustResize"をマニフェストのアクティビティに追加します
  • レイアウトxmlのルートビューにAndroid:fitsSystemWindows="true"プロパティがあることを確認してください
68
David

特定のフラグメントを使用している場合、このコードを使用でき、アクティビティに応じて適宜変更できます。

    view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
        @Override
        public void onGlobalLayout() {
            Rect r = new Rect();
            view.getWindowVisibleDisplayFrame(r);
            if (v.getRootView().getHeight() - (r.bottom - r.top) > 500) {
                //Log.d("keyboardStatus","opened");
                fab.setVisibility(View.GONE);
            } else {
               // Log.d("keyboardStatus","closed");
                fab.setVisibility(View.VISIBLE);
            }
        }
    });
0
Hari