2016-08-22 1 views
7

Что каждый из них охватывает с точки зрения текста во всем приложении?TextColor vs TextColorPrimary vs TextColorSecondary

В частности, что изменило бы каждый из них при изменении темы во всем приложении? Я бы хотел, чтобы тексты моих кнопок были другого цвета, чем мои текстовые изображения; является одной первичной и другой вторичной?

Любая информация, относящаяся к этим условиям, ценится!

ответ

10

TextColor - это только атрибут xml, чтобы установить цвет текста любого данного вида.

TextColorPrimary - цвет текста по умолчанию для разрешенных кнопок и больших текстовых изображений.

TextColorSecondary - цвет текста по умолчанию для средних и малых текстовых изображений.

Игнорируйте это, что касается того, что вы хотите сделать, есть лучший способ. Вы хотите изменить свой style.xml таким образом, чтобы тема AppTheme по умолчанию (или что еще вы объявили в качестве темы в манифесте) содержит необходимые атрибуты xml для настройки цвета текста.

Получившийся в результате стиль AppTheme будет выглядеть так, как только вы закончите.

<!-- 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> 
    <item name="android:textColor">#hexColorForTextViews</item> 
    <item name="android:buttonStyle">@style/myDefaultButton</item> 
</style> 

textColor установит цвет по умолчанию для всех ваших текстовых просмотров. buttonStyle будет ссылаться на пользовательский стиль, который вы хотите использовать для всех ваших кнопок. Чтобы сделать эту работу, добавьте этот тег стиля в файл styles.xml.

<style name="myDefaultButton"> 
    <item name="android:textColor">#hexColorForButtons</item> 
    <!-- other stuff you want your buttons to inherit by default --> 
</style>