colorPrimary или primaryColor? - PullRequest
       27

colorPrimary или primaryColor?

0 голосов
/ 06 января 2020

Повсюду в Интернете я вижу использование colorPrimary, пока не наткнулся на собственный Цветовой инструмент Google , где они используют:

-<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>

Как только вы экспортируете свои выборы.

Итак, каково правильное соглашение? Кроме того, повлияет ли это на цвета компонентов материалов виджетов?

1 Ответ

1 голос
/ 07 января 2020

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>

Как видите, в стилях. xml, 3 имени атрибута, colorPrimary, colorPrimaryDark, colorAccent определены в родительском тема, поэтому вы должны использовать то же имя, потому что вы хотите переопределить его.

В цветах. xml вы можете использовать любое имя, которое, по вашему мнению, имеет смысл в вашем приложении.

Вернуться к вашим вопросам:

Итак, каково правильное соглашение?

В этом случае нет стандартного соглашения, но от Android Разработчик, вы просто даете название цвету, добавлять не нужно цвет / цвет в качестве префикса или суффикса. Потому что мы обычно помещаем цвета всех приложений в res/values/colors.xml, а каждый элемент находится внутри цветовой метки.

Повлияет ли это на цвета компонентов компонентов виджетов?

Это не.

...