Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Set FAB (Floating Action Button) above keyboard

Already asked here but without a proper answer.

I want the FAB to float on top of the keyboard. that's it.

For example

  1. Open a new Blank Activity template project with Android Studio
  2. Change the Hello World TextView to EditText
  3. See image below:

enter image description here

like image 419
David Avatar asked Dec 09 '15 23:12

David


People also ask

How do you adjust a floating button?

Add the floating action button to your layoutThe size of the FAB, using the app:fabSize attribute or the setSize() method. The ripple color of the FAB, using the app:rippleColor attribute or the setRippleColor() method. The FAB icon, using the android:src attribute or the setImageDrawable() method.

Where do you put the floating action button?

The button should be placed in the bottom right corner of the screen. The recommended margin for the bottom is 16dp for phones and 24dp for tablets. In the example above, 16dp was used. The actual drawable size should be 24dp according to the Google design specs.


2 Answers

Turns out it's pretty easy,

  • Add android:windowSoftInputMode="adjustResize" to your activity in manifest
  • Make sure your root view in layout xml, has android:fitsSystemWindows="true" property
like image 183
David Avatar answered Sep 21 '22 03:09

David


If you want to see FloatingActionBar move above keyboard, you should:

1) Insert FloatingActionBar inside CoordinatorLayout:

<androidx.coordinatorlayout.widget.CoordinatorLayout     android:id="@+id/coordinator"     android:layout_width="match_parent"     android:layout_height="match_parent">      <com.google.android.material.floatingactionbutton.FloatingActionButton         android:id="@+id/fab"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_gravity="bottom|end"         android:layout_margin="16dp"         android:src="@drawable/ic_img" />  </androidx.coordinatorlayout.widget.CoordinatorLayout> 

2) Add in root View (where your FAB exist) code:

android:fitsSystemWindows="true". 

For example:

<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:app="http://schemas.android.com/apk/res-auto"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"     android:layout_height="match_parent"     android:fitsSystemWindows="true"     android:orientation="vertical"     tools:context=".AddFilm">      <androidx.coordinatorlayout.widget.CoordinatorLayout         android:id="@+id/coordinator"         android:layout_width="match_parent"         android:layout_height="match_parent">          <com.google.android.material.floatingactionbutton.FloatingActionButton             android:id="@+id/fab"             android:layout_width="wrap_content"             android:layout_height="wrap_content"             android:layout_gravity="bottom|end"             android:layout_margin="16dp"             android:src="@drawable/ic_img" />      </androidx.coordinatorlayout.widget.CoordinatorLayout>  </LinearLayout> 

3) Add next code in AndroidManifest.xml to your Activity:

android:windowSoftInputMode="adjustResize" 

For example:

<activity         android:name=".MainActivity"         android:windowSoftInputMode="adjustResize"/> 
like image 40
Kirill Parfenov Avatar answered Sep 20 '22 03:09

Kirill Parfenov