如果在android中打开键盘,则SnackBar无法正常显示

问题描述 投票:2回答:4

我正在使用小吃店显示信息,如果没有打开键盘,它工作正常。如果打开键盘,显示整个屏幕的小吃栏消息无法正常显示我使用的是Android 5.5。我在我的活动清单中添加了这行android:windowSoftInputMode="adjustResize|stateAlwaysHidden",但仍然是同样的问题。请帮我解决这个问题。请在下面找到screen shot的图片。我的小吃条形码是Snackbar.make(coordinator,getString(R.string.validation_plz_enter_mandatory_flds, UtilConstants.ERROR_CODE_UI_2000),Snackbar.LENGTH_INDEFINITE).show();

android android-fragments android-keypad android-snackbar
4个回答
2
投票

这是这个问题的正确解决方案:SnackBar show Above the SoftInput (Keyboard) - (键盘打开时)

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

标记到清单的活动标记。

enter image description here


1
投票

您是否按照以下代码初始化了快餐栏:

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

或者您使用了自己的布局?

因为如果我们使用android自己的UI元素(android.R.id.content),它会设法在自己的有效UI上显示。你应该先试试这个。


1
投票

只需使用以下代码隐藏您调用SnackBar的KeyBoard:

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

1
投票

将此属性放入您的Manifest文件中以进行适当的活动。

        <activity android:name=".YourActivity"
              android:windowSoftInputMode="adjustResize"/>
© www.soinside.com 2019 - 2024. All rights reserved.