Android 4.4上的Android 4.4半透明状态和导航栏样式
在Android 4.4 KitKat中,您可以使用android:windowTranslucentStatus
和android:windowTranslucentNavigation
主题元素将状态和导航栏设置为透明,然后在应用程序窗口的下方扩展栏并添加渐变。 然而,在Android 5.0 Lollipop中,这已经被改变了,现在不是渐变,而是添加了一种纯色的透明色。 Android 5.0在新的Material主题下提供了新的android:statusBarColor
和android:navigationBarColor
元素,但是当您尝试将这些元素设置为@android:color/transparent
,应用程序窗口不会被扩展,如果您使用android:windowTranslucentStatus
和android:windowTranslucentNavigation
然后android:statusBarColor
和android:navigationBarColor
被忽略。
我是否缺lesshttp://developer.android.com/training/material/theme.html#StatusBar上描述的内容?
将android:windowTranslucentStatus
设置为false ,并将android:statusBarColor
设置为@android:color/transparent
。
然后添加下面的代码:
getWindow().getDecorView().setSystemUiVisibility( View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);
如果您还希望导航栏是半透明的,请将android:navigationBarColor
设置为@android:color/transparent
并将标记View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
结合使用。
我没有在导航栏上进行实验,但它会工作。
将以下行添加到您的样式中:
<item name="android:windowTranslucentStatus">true</item> <item name="android:windowTranslucentNavigation">true</item>
澄清@ suckgamony对这个问题的回答 :
- 在棒棒糖和以上 ,设置
android:statusBarColor
或android:navigationBarColor
到@android:color/transparent
将使状态栏或导航栏 (分别)完全透明,除非: -
android:windowTranslucentStatus
或android:windowTranslucentNavigation
设置为true,在这种情况下, 状态栏或导航栏 (分别)被设置为实心透明颜色@AxeEffect描述(再次,在棒棒糖和以上); -
android:statusBarColor
和android:navigationBarColor
只能与Android版本21(Lollipop 5.0)或更高版本一起使用。 正如所提到的答案中所述 ,与Kitkatandroid:windowTranslucentNavigation
使用时,android:windowTranslucentStatus
或android:windowTranslucentNavigation
提供透明渐变而不是完全透明。