首页 文章

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

提问于
浏览
36

在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 .

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

enter image description here

3 回答

  • 2

    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 .

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

  • 7

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

    <item name="android:windowTranslucentStatus">true</item>
    <item name="android:windowTranslucentNavigation">true</item>
    
  • 63

    澄清@suckgamony's answer这个问题:

    • Under Lollipop and above ,设置 android:statusBarColorandroid:navigationBarColor@android:color/transparent 将使 Status BarNavigation Bar (分别)完全透明,除非:

    • android:windowTranslucentStatusandroid:windowTranslucentNavigation 设置为true,在这种情况下 Status BarNavigation Bar (分别)设置为固体透明颜色@AxeEffect描述(再次,在Lollipop及以上);

    • android:statusBarColorandroid:navigationBarColor 只能与Android版本21(Lollipop 5.0)或更高版本一起使用 . 如the referred to answerandroid:windowTranslucentStatusandroid:windowTranslucentNavigation 中所述,当与Kitkat一起使用时,提供透明渐变而不是完全透明 .

相关问题