Android 5.0上的Android 4.4半透明状态和导航栏样式

Axe*_*ect 37 android statusbar navigationbar android-5.0-lollipop

在Android 4.4 KitKat上,您可以使用android:windowTranslucentStatusandroid:windowTranslucentNavigation主题元素将状态和导航栏设置为透明,然后在条形图下方展开应用程序窗口并添加渐变.然而,在Android 5.0 Lollipop上,这已经改变了,现在代替了渐变,添加了坚固的透明色.是Android 5.0提供了新的android:statusBarColorandroid:navigationBarColor元素在新材料题材,但是当你尝试设置这些元素@android:color/transparent的应用程序窗口没有延长,而如果你使用android:windowTranslucentStatusandroid:windowTranslucentNavigationandroid:statusBarColorandroid:navigationBarColor被忽略.

我错过了http://developer.android.com/training/material/theme.html#StatusBar上描述的内容吗?

在此输入图像描述

小智 65

设置android:windowTranslucentStatusfalse并设置android:statusBarColor@android:color/transparent.

然后添加以下代码:

getWindow().getDecorView().setSystemUiVisibility(
        View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
Run Code Online (Sandbox Code Playgroud)

如果你也想为半透明导航栏,设置android:navigationBarColor@android:color/transparent并结合标志View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION为好.

我没有在导航栏上进行实验,但它会起作用.


小智 7

在你的风格下面添加以下内容:

<item name="android:windowTranslucentStatus">true</item>
<item name="android:windowTranslucentNavigation">true</item>
Run Code Online (Sandbox Code Playgroud)


COD*_*EaD 5

为了澄清@suckgamony对这个问题的回答

  • 下棒棒糖和上面,设置android:statusBarColorandroid:navigationBarColor@android:color/transparent将使状态栏导航栏(分别)是完全透明的,除非:
  • android:windowTranslucentStatusandroid:windowTranslucentNavigation设置为true,在这种情况下,状态栏导航栏(分别)设置为@AxeEffect描述的纯透明颜色(同样,在Lollipop下)。
  • android:statusBarColor并且android:navigationBarColor只能与Android版本21(Lollipop 5.0)或更高版本一起使用。如所提到的答案中所述android:windowTranslucentStatusandroid:windowTranslucentNavigation与Kitkat一起使用时,它提供透明的渐变而不是完全透明。