colorPrimary或 primaryColor?

问题描述 投票:0回答:1

在网络上的每个地方,我都看到colorPrimary的使用,直到偶然发现Google自己使用的Color Tool

-<resources>

<color name="primaryColor">#303f9f</color>

<color name="primaryLightColor">#666ad1</color>

<color name="primaryDarkColor">#001970</color>

<color name="secondaryColor">#fdd835</color>

<color name="secondaryLightColor">#ffff6b</color>

<color name="secondaryDarkColor">#c6a700</color>

<color name="primaryTextColor">#ffffff</color>

<color name="secondaryTextColor">#000000</color>

</resources>

一旦您导出选择。

那么正确的约定是什么?另外,会影响小部件的“材料成分”颜色吗?

android colors material-design user-experience material-components
1个回答
0
投票

1。如果在res/values/colors.xml中定义颜色,则可以单独使用任何名称,在Java / Kotlin类中创建变量时也可以使用相同的名称。

  • primaryColor
  • colorPrimary
  • primary_color
  • color_primary

Android开发人员的示例

<?xml version="1.0" encoding="utf-8"?>
<resources>
   <color name="opaque_red">#f00</color>
   <color name="translucent_red">#80ff0000</color>
</resources>

2。如果您创建自Android样式/主题的自定义样式/主题,则必须使用Android定义的名称。

// colors.xml
<?xml version="1.0" encoding="utf-8"?>
<resources>
    <color name="primaryColor">#008577</color>
    <color name="primary_dark_color">#00574B</color>
    <color name="color_accent">#D81B60</color>
</resources>

// styles.xml
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
    <!-- Customize your theme here. -->
    <item name="colorPrimary">@color/primaryColor</item>
    <item name="colorPrimaryDark">@color/primary_dark_color</item>
    <item name="colorAccent">@color/color_accent</item>
</style>

您可以在styles.xml中看到,在父主题中定义了3个属性名称colorPrimarycolorPrimaryDarkcolorAccent,因此您必须使用相同的名称,因为您要覆盖它。

colors.xml中,您可以使用您认为在应用程序中有意义的任何名称。

返回您的问题:

那么正确的约定是什么?

在这种情况下没有标准约定,但是在Android Developer中,您只需为颜色指定一个名称,而无需添加color / Color作为前缀或后缀。因为我们通常将所有应用程序的颜色都放在res/values/colors.xml中,并且每个项目都在颜色标签内。

会影响小部件的材料成分颜色吗?

没有。

© www.soinside.com 2019 - 2024. All rights reserved.