键盘打开时导航栏变为透明

时间:2016-04-27 18:46:14

标签: android android-softkeyboard landscape navigationbar android-immersive

这是它的外观。 transparent navigation bar

以下是详细信息。 我有没有背景的活动。但这不是问题。在主题或代码中设置背景可绘制或颜色都没有解决问题。

活动具有软输入模式adjustPan|stateAlwaysHidden

我还在代码

中为活动的装饰视图设置了这些标志
View.SYSTEM_UI_FLAG_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_FULLSCREEN
        | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
        | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
        | View.SYSTEM_UI_FLAG_LAYOUT_STABLE
        | View.SYSTEM_UI_FLAG_IMMERSIVE_STICKY

我尝试在主题中明确将颜色设置为导航栏,如此

<item name="android:navigationBarColor" tools:targetApi="lollipop">@color/chat_bg</item>
<item name="android:windowDrawsSystemBarBackgrounds" tools:targetApi="lollipop">true</item>

但没有成功(

我只能在我的LG Nexus 5X上重现它。在其他设备上我试过导航栏显示颜色。

2 个答案:

答案 0 :(得分:0)

我今天遇到了完全相同的问题。在我的情况下,这是因为我的活动使用的主题是一个源自Theme.AppCompat.NoActionBar的主题。问题不在于自定义主题,而是来自AppCompat库中的问题。当我将自定义样式的父级更改为:@android:style/Theme.NoTitleBar.Fullscreen时,它开始显示纯黑色背景颜色,这比透明更令人满意。我同意这看起来像一个小故障。

我希望这将有助于未来的某些人,因为我知道这是一个迟到的答案。

答案 1 :(得分:0)

我很久以前找到了这个解决方案。也许现在可以为您提供帮助

if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
    getWindow().clearFlags(WindowManager.LayoutParams.FLAG_DRAWS_SYSTEM_BAR_BACKGROUNDS);
}