Android statusBarColor vs colorPrimaryDark

时间:2016-12-14 09:14:18

标签: android themes android-appcompat

  

这两个字段具有相同的效果,但 statusBarColor 具有更高   主题

中的优先级
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:colorPrimary">@color/colorPrimary</item>
    <item name="android:colorPrimaryDark">@android:color/black</item>
    <item name="android:colorAccent">@color/colorAccent</item>
</style>

在上面的代码statusBar中有黑色颜色但在下面的代码中statusBar有白色颜色

<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="android:windowActionBar">false</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:colorPrimary">@color/colorPrimary</item>
    <item name="android:colorPrimaryDark">@android:color/black</item>
    <item name="android:statusBarColor">@android:color/white</item>
    <item name="android:colorAccent">@color/colorAccent</item>
</style>

AppCompat主题中的主要参与是什么?

2 个答案:

答案 0 :(得分:4)

来自developer.android.com

  

要为状态栏设置自定义颜色,请在扩展材质主题时使用android:statusBarColor属性。默认情况下,android:statusBarColor继承android:colorPrimaryDark。

的值

答案 1 :(得分:2)

statusBarColor和colorPrimaryDark之间的主要区别是:

  • statusBarColor :设置状态栏的颜色(仅此而已)
  • colorPrimaryDark::设置状态栏和上下文应用栏的颜色。

这就是为什么当两种颜色都不同时,状态栏的 statusBarColor 优先于 colorPrimaryDark 的原因。