什么是ColorPrimaryLight以及如何使用它?

时间:2016-08-24 15:04:44

标签: android material-design android-styles

Image

我将此作为我Material Design Color Platte生成的颜色之一。

但是在这张图片中:

Image

我在任何地方都看不到colorPrimaryLight。它用于什么以及如何声明它?在我的风格中声明它是这样的吗?:

<item name="colorPrimaryLight">@color/colorPrimaryLight</item>

或者我以不同的方式声明它?它用于什么?

2 个答案:

答案 0 :(得分:3)

默认情况下,statusBarColor设置为colorPrimaryDark。如果你想使用colorPrimaryLight作为状态栏,你需要将android:statusBarColor设置为android:colorPrimaryLight。

https://developer.android.com/training/material/theme.html

在您的资源文件中: <color name="colorPrimaryLight">#D1C4E9</color>

你的样式文件中的

<item name="colorPrimaryLight">@color/colorPrimaryLight</item>

答案 1 :(得分:1)

TL; DR: colorPrimaryLight 是被标识为“材质”调板的一部分的几种颜色之一,实际上并未映射到Android中的“主题”属性。准则建议在多个区域(例如TabLayout背景)中使用它。

我找不到有关在Android应用程序中使用此属性的权威来源,但是Material似乎定义了大量的颜色as shown on this helpful page,但并非所有颜色都映射到了Android Theme属性。例如,如果您在Android Studio中创建一个全新的单活动项目,然后修改styles.xml,如下所示:

<resources>
    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <!-- Customize your theme here. -->
        <item name="colorPrimary">@color/colorPrimary</item>
        <item name="colorPrimaryDark">@color/colorPrimaryDark</item>
        <item name="colorAccent">@color/colorAccent</item>
        <!-- THIS THEME ATTRIBUTE IS NOT FOUND -->
        <item name="colorPrimaryLight">@color/colorPrimary</item>
    </style>
</resources>

编译器找不到 colorPrimaryLight 属性。

因此,如果您想在应用程序中使用它,则可能必须显式链接到color.xml资源。这似乎在某种程度上抵消了主题系统的好处,但也许我错过了一个窍门。