SnackBar is not showing properly if the keyboard is opened in android

Viewed 3605

I am using snack bar for displaying information, it is working fine if keyboard is not opened. If keyboard is opened the snack bar message displaying whole screen not displaying properly i am using android 5.5. I added this line android:windowSoftInputMode="adjustResize|stateAlwaysHidden" in my activity manifest but still same issue. Please help me for this issue. Please find the image belowscreen shot. My snack bar code is Snackbar.make(coordinator,getString(R.string.validation_plz_enter_mandatory_flds, UtilConstants.ERROR_CODE_UI_2000),Snackbar.LENGTH_INDEFINITE).show();

5 Answers

This is the Correct Solution of this problem: SnackBar show Above the SoftInput (Keyboard) - (when Keyboard is Open)

<activity android:name=".YourActivity"
    android:windowSoftInputMode="adjustResize"/> 

tag into your activity tag of the manifest.

enter image description here

Have you initialized your snackbar like below code:

snackbar = Snackbar.make(findViewById(android.R.id.content), <Your message>, Snackbar.LENGTH_LONG);

or you have used your own layout??

Because if we use android's own UI element(android.R.id.content) it manages to show on valid UI of their own. You should first try this.

Put this property in your Manifest file to your proper activity.

        <activity android:name=".YourActivity"
              android:windowSoftInputMode="adjustResize"/>

Just Hide the KeyBoard where you call your SnackBar using below code:

  InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
            imm.hideSoftInputFromWindow(parentLayout.getWindowToken(), 0); // parentLayout is your main layout of an activity

If your using CoordinatorLayout with AppBar and NestedLayout with EditText inside, it won't work. This is a bug in support lib, reported here.

Similar question here.

You can use a workaround by wrapping the CoordinatorLayout with another Constraint/Relative Layout (PS I've not tried RealtiveLayout but works using ConstraintLayout) and use android:fitsSystemWindows="true". with referenced to this answer.

Related