使用android:fitsSystemWindows将快餐栏放在键盘上

时间:2018-05-24 20:50:54

标签: android keyboard android-softkeyboard snackbar

会发生什么:当小吃栏出现在屏幕上时,它会显示自己但隐藏在键盘和导航栏后面,以解决我可以在样式属性{{1}上设置false的问题。 }}。但是这样,小吃栏会在键盘和导航栏上正确显示,但我的布局高度不会调整到适合键盘剩余的空间,同时也会将主登录按钮和一半布局隐藏到用户,所以他必须解雇键盘才能按下登录按钮。 请参阅下面的代码截图。

我的活动宣言声明:

"android:fitsSystemWindows"

我的活动风格:

<activity
    android:name=".login.LoginActivity"
    android:label="@string/default_activity_name"
    android:windowSoftInputMode="adjustResize"
    android:theme="@style/AppTheme.NoActionBar.WhiteInvertedNotificationBar" />

我的布局:

<style name="AppTheme.NoActionBar.BaseWhiteInvertedNotificationBar" >
    <item name="colorPrimaryDark">@color/pure_white</item>
    <item name="colorAccent">@color/accent_grey</item>
    <item name="android:windowBackground">@color/pure_white</item>
    <item name="android:fitsSystemWindows">true</item> <!-- the problem -->
</style>

如果您看到布局正确调整,则为true,但是: "android:fitsSystemWindows" : true, snackbar goes behind the navbar "android:fitsSystemWindows" : true, snackbar goes behind the keyboard

如果您看到小吃栏出现在键盘和导航栏上,但布局没有像以前那样调整,那么错误就会显示:

"android:fitsSystemWindows" : false, snackbar goes ok, but the height didnt adjust "android:fitsSystemWindows" : false, snackbar goes ok, but the height didnt adjust

2 个答案:

答案 0 :(得分:0)

显示您的零食店代码。

或在片段中使用它:

Snackbar.make(getView(), "hello", Snackbar.LENGTH_LONG).show();

活动:

Snackbar.make(getWindow().getDecorView(), "hello", Snackbar.LENGTH_LONG).show();

答案 1 :(得分:0)

  1. AndroidManifest.xml的活动中添加以下行:android:windowSoftInputMode="adjustResize"

  2. 在您的xml中使用android.support.design.widget.CoordinatorLayout来显示Snackbar消息。