web-dev-qa-db-fra.com

Définir FAB (bouton d'action flottant) au-dessus du clavier

Déjà demandé ici mais sans réponse appropriée.

Je veux que le FAB flotte sur le clavier. c'est tout.

Par exemple

  1. Ouvrir un nouveau projet de modèle Blank Activity avec Android Studio
  2. Changez le Hello World TextView en EditText
  3. Voir l'image ci-dessous:

 enter image description here

39
David

Il s'avère que c'est assez facile,

  • Ajoutez Android:windowSoftInputMode="adjustResize" à votre activité dans le manifeste
  • Assurez-vous que votre vue racine dans layout XML a la propriété Android:fitsSystemWindows="true"
62
David

Si vous utilisez un fragment en particulier, vous pouvez utiliser ce code et pour l’activité, modifiez-le en conséquence.

    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