我将此作为我Material Design Color Platte生成的颜色之一。
但是在这张图片中:
我在任何地方都看不到colorPrimaryLight
。它用于什么以及如何声明它?在我的风格中声明它是这样的吗?:
<item name="colorPrimaryLight">@color/colorPrimaryLight</item>
或者我以不同的方式声明它?它用于什么?
答案 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资源。这似乎在某种程度上抵消了主题系统的好处,但也许我错过了一个窍门。