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

在Android 4.4 KitKat中,您可以使用android:windowTranslucentStatusandroid:windowTranslucentNavigation主题元素将状态和导航栏设置为透明,然后在应用程序窗口的下方扩展栏并添加渐变。 然而,在Android 5.0 Lollipop中,这已经被改变了,现在不是渐变,而是添加了一种纯色的透明色。 Android 5.0在新的Material主题下提供了新的android:statusBarColorandroid:navigationBarColor元素,但是当您尝试将这些元素设置为@android:color/transparent ,应用程序窗口不会被扩展,如果您使用android:windowTranslucentStatusandroid:windowTranslucentNavigation然后android:statusBarColorandroid: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:statusBarColorandroid:navigationBarColor@android:color/transparent将使状态栏导航栏 (分别)完全透明,除非:
  • android:windowTranslucentStatusandroid:windowTranslucentNavigation设置为true,在这种情况下, 状态栏导航栏 (分别)被设置为实心透明颜色@AxeEffect描述(再次,在棒棒糖和以上);
  • android:statusBarColorandroid:navigationBarColor只能与Android版本21(Lollipop 5.0)或更高版本一起使用。 正如所提到的答案中所述 ,与Kitkat android:windowTranslucentNavigation使用时, android:windowTranslucentStatusandroid:windowTranslucentNavigation提供透明渐变而不是完全透明。