Android棒棒糖透明状态栏

Android Lollipop transparent statusbar

我的问题很简单,但我需要一些帮助 我有一个 MainActivity、几个 Fragments 和 NavigationDrawer。我还使用 Appcompat v7 NavigationDrawer 显示在我使用的 ScrimInsetsLayout 的状态栏后面。 在样式中我有 colorPrimary 和 colorPrimaryDark(parent is Theme.Appcompat)

在主要 activity 中,我使用 setStatusBarColor(Color.TRANSPARENT) 在状态栏中显示抽屉。所以现在我在状态栏中有 colorPrimaryDark 状态栏颜色和 NavigationDrawer

现在我创建了一个新的片段,我需要禁用 colorPrimaryDark 颜色并使状态栏真正透明

正如我之前所说,将颜色设置为透明会使它成为 colorPrimaryDark 并显示抽屉

将其设置为任何其他颜色 "hides" 抽屉。

谢谢

截图:

transparent半透明状态栏可从API 19,新建一个values-v19文件夹,里面有一个styles.xml,然后更新你的 BaseAppTheme 像这样:

<!-- Base application theme for v19. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowTranslucentNavigation">false</item>
    <item name="android:windowTranslucentStatus">true</item>
</style>

但是,这会使您的 UI 使用 StatusBar 后面的 space,所以我建议添加一个额外的 TOP padding,25dp(研究并发现每个API 使用 25dp 作为 StatusBar 高度,即使在 landscape 模式下),对于设备 > API19