【问题标题】:Android : status bar color change for API level below 21Android:API 级别低于 21 的状态栏颜色更改
【发布时间】:2016-03-09 04:32:08
【问题描述】:

我正在尝试更改 API 级别低于 21 的状态栏颜色。通过更改主题样式中的主颜色,我们可以更改 API 级别 21 的状态栏颜色。

我正在寻找如何更改较低版本的状态栏颜色

谁能帮帮我?

【问题讨论】:

    标签: android android-5.0-lollipop android-theme android-styles android-statusbar


    【解决方案1】:

    Lollipop 可以更改状态栏的颜色

    但实际上您可以更改 Api >= 19 的状态栏颜色

    value-v19的样式里面放

    <?xml version="1.0" encoding="utf-8"?>
    <resources>
    
            <style name="AppTheme" parent="MaterialDrawerTheme.Light">
                    <!-- Customize your theme here. -->
                    <item name="android:windowNoTitle">true</item>
                    <item name="android:windowTranslucentStatus">true</item>
                    .....
            </style>
    </resources>
    

    状态栏的背景色会变成透明色,为了给它着色,你只需在你的应用程序中添加一个背景色,这样状态栏就会采用该颜色

    希望这是清晰和有用的

    【讨论】:

    • 这很好,我怎样才能改变它的颜色而不是半透明?
    【解决方案2】:

    更改状态栏颜色功能仅从 Lollipop 开始可用。较低的操作系统版本没有此功能。您无法更改棒棒糖前设备中的状态栏颜色。

    【讨论】:

    • 我不同意这个,这个库怎么样? github.com/jgilfelt/SystemBarTint
    • 那不完全像材料设计。有了它,我们只能创建半透明的状态栏。并且只能在 API>=19 中完成。
    【解决方案3】:

    最新版本的AppCompat v7:23.1.0 也不支持状态栏着色。

    看看Android developers blog post

    来自帖子:

    在旧平台上,AppCompat 尽可能模拟颜色主题。目前这仅限于为操作栏和一些小部件着色。

    这意味着 AppCompat 库只会在 Lollipop 及更高版本上为状态栏着色。

    【讨论】:

    • 你会想的。 叹息。有时谷歌做出的设计选择令人费解。比如他们在那边抽什么烟?
    【解决方案4】:

    >

    在 API lvl v21 以下,您可以通过更改 colorPrimaryDark(有时 colorPrimary ) 属性在 styles.xml 文件和您正在使用的 theme 内。

    现在,这对您来说可能或许多不可行,它可能看起来像是一个 hack,甚至对您来说是显而易见的。但我只是在这里发布它,因为它对我有用,而且我真的没有使用 colorPrimary 或 colorPrimaryDark,所以我没有任何问题。

    【讨论】:

      猜你喜欢
      • 2016-11-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-05-28
      • 1970-01-01
      • 2016-10-25
      • 1970-01-01
      相关资源
      最近更新 更多