【问题标题】:Navigation bar becomes transparent when keyboard opened打开键盘时导航栏变为透明
【发布时间】:2016-04-27 18:46:13
【问题描述】:

这是它的外观。

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

Activity有软输入模式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 上重现它。在我尝试过的其他设备上,导航栏显示为充满颜色。

【问题讨论】:

  • 由于它只出现在一台设备上,您可能正在查看固件错误。虽然它是 Nexus 的事实使得它不太可能。
  • 我试过 Nexus 6P 模拟器,效果一样。也许这都是nexus手机。带有 android 6 的 Nexus 7 在底部有黑色导航栏。不透明。
  • 嗯,但是 Nexus 手机有“正确”的实现,所以你的代码肯定有问题,但我恐怕无法帮助你。编辑:或者它可能是预期的功能。不过不太可能。
  • 就算是对的我也想知道怎么处理。

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


【解决方案1】:

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

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

【讨论】:

    【解决方案2】:

    我很久以前就找到了这个解决方案。也许这对你现在有帮助

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

    【讨论】:

      猜你喜欢
      • 2022-12-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多