【问题标题】:Material style navigation drawer, statusbar color gets too dark材质风格的导航抽屉,状态栏颜色太深
【发布时间】:2015-04-03 20:37:41
【问题描述】:

我正在尝试遵循 Material Design 指南来制作一个带有操作栏(工具栏)和导航抽屉的应用程序,以便它看起来像在 Google Apps 中。我找到的解决方案是在我的主题中将 "android:windowTranslucentStatus" 设置为 true ,并将 "android:fitsSystemWindows" 保持为 false ,并在我的工具栏上使用额外的填充来补偿它。

但问题是,状态栏的最终颜色太暗了。例如,即使我将工具栏设置为与 G-mail 应用程序相同的材质颜色,我的应用程序中的状态栏颜色也比 G-Mail 应用程序中的颜色深。

有人可以在这里为我指出正确的方向吗?我听说过很多关于自定义 ScrimLayout hack 的内容,但如果可能的话,我想坚持使用 Android API。

【问题讨论】:

标签: android navigation-drawer statusbar material-design


【解决方案1】:

我不知道你在尝试哪个 api 级别,但是对于 api>=21 试试这个:

在您的 values-v21/styles.xml 中执行以下操作:

   <style name="AppTheme" parent="android:Theme.Material.Light.DarkActionBar">

    <item name="android:colorPrimary">@color/toolbarcolor</item>
    <item name="android:colorPrimaryDark">@color/navdrawercolor</item>

   </style>

来源:Youtube - AndroidDeveloper / from Holo to Material

编辑:

要在 api >=21 中设置状态栏颜色,您可以使用:

<item name="android:statusBarColor">@android:color/transparent</item>

并在您的活动中的 onCreate 中设置全屏模式:

            getWindow().getDecorView().setSystemUiVisibility(
            View.SYSTEM_UI_FLAG_LAYOUT_STABLE
                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN);

【讨论】:

  • 这行不通,因为我将 android:windowTranslucentStatus 设置为 true ,否则我将无法将导航抽屉滑到状态栏下方。
  • 我没有,我说过我想坚持Android SDK本身,但光看它,它似乎已经过时并且打算在KK上使用
  • 您是否尝试过像这样设置颜色:@android:color/red,然后像在这篇文章中那样以编程方式设置全屏模式:@987654322 @
  • 我以前看过那篇文章,但现在重温它对我有所帮助。问题是,如果你想要透明的状态栏,这篇文章中的方法很好。但是,我想要一个有色状态栏,以便工具栏具有颜色(原色,根据谷歌指南的“500”),状态栏将具有该颜色的较暗(700)色调。我也许可以做的一件事,但我不确定如何做,就是找出一个精确的半透明颜色代码,当覆盖 500 种颜色时,会产生 700 种颜色。
  • 实际上,这不太可能,因为谷歌材料调色板的颜色不仅仅是着色,它们更暗,但比黑色/不透明色调更复杂
【解决方案2】:

把它放在你的AppTheme风格中的styles.xml (v21)中

<item name="android:statusBarColor">@android:color/transparent</item> <item name="android:windowDrawsSystemBarBackgrounds">true</item>

【讨论】:

    猜你喜欢
    • 2014-12-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多