gpt4 book ai didi

android - 透明状态栏不适用于 windowTranslucentNavigation ="false"

转载 作者:IT王子 更新时间:2023-10-29 00:08:56 26 4
gpt4 key购买 nike

我正在开发一个 Activity,我需要在其中使导航栏不透明,并且在运行 5.0+(API 21+)的设备上使状态栏透明。下面是我使用的样式,以及对我的问题的解释。

AppTheme 扩展 Theme.AppCompat.Light.NoActionBar

<item name="android:statusBarColor">@color/transparent</item>
<item name="android:windowActionBar">false</item>
<item name="android:windowDrawsSystemBarBackgrounds">true</item>
<item name="android:statusBarColor">@color/welbe_red_transparent</item>

FullscreenTheme 扩展 AppTheme

<item name="android:windowNoTitle">true</item>
<item name="android:statusBarColor">@color/transparent</item>
<item name="android:windowTranslucentNavigation">true</item>

这使应用看起来像这样

android:windowTranslucentNavigation="true"

如果我删除 android:windowTranslucentNavigation 样式,或在 Fullscreen 中将其设置为 false,它会修复导航栏问题。问题是状态栏变成完全白色,而不是保持透明并显示其后面的内容。

android:windowTranslucentNavigation="false"

我曾尝试在我的布局中使用 fitsSystemWindow="true",但它并没有解决问题。有人知道为什么会这样吗?

最佳答案

android:windowTranslucentNavigation 做了一件 android:statusBarColor 没有做的事情,即请求 SYSTEM_UI_FLAG_LAYOUT_STABLESYSTEM_UI_FLAG_LAYOUT_FULLSCREEN 标志。

这些是您需要请求才能在状态栏后面绘制的。

ActivityonCreate 中请求它们:

getWindow().getDecorView().setSystemUiVisibility(View.SYSTEM_UI_FLAG_LAYOUT_STABLE | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);

或者,您也可以简单地设置您的应用程序主题背景,它也会在您的状态栏后面弹出。

更多信息here .

关于android - 透明状态栏不适用于 windowTranslucentNavigation ="false",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28289477/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com