Android 11(API 30)中导航栏不完全透明

6

getWindow().setFlags(WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS, WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS);在Android API 30中不起作用。 我尝试使用来自此教程的另一个代码:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
            getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION);
            getWindow().setNavigationBarColor(Color.TRANSPARENT);
        }

但是导航栏并不完全透明 (图片),就像在Google应用中一样。 如何实现完全透明的导航栏?

1个回答

12
经常情况下,你可以自己找到解决方案。
我在这个教程中找到了解决方法。
你只需要在你的主题中使用这段代码<item name="android:enforceNavigationBarContrast">false</item>来禁用自动系统内容保护。

这就是我的问题的解决方案,非常感谢,我会给你们的问题和答案点赞。请接受这个答案作为被采纳的答案,因为它解决了问题。 - Some random IT boy
不是设置透明的导航栏,而是改变了状态栏的颜色。 - CoolMind
1
@CoolMind,也许你有些混淆了。上面的代码只是通过这个代码<item name="android:enforceNavigationBarContrast">false</item>在Android 10+上禁用了系统内容保护,但对StatusBar没有影响。虽然,有一段代码可以做到相同的效果,但是针对的是StatusBar,即<item name="android:enforceStatusBarContrast">false</item> - copycat13
@CoolMind,点击此处了解更多相关信息。 - copycat13

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接