Я пишу приложение, которому нужны следующие две вещи:
- Общий текст (в
TextView
с) должен быть одного цвета (белый, в данном случае - темный фон)
- Текст на
Spinner
должен быть другого цвета (черный, так как белый слишком трудно читать)
Я использовал тему, примененную на уровне приложения в манифесте, для выполнения первого пункта выше.
<resources>
<style name="GlobalTheme" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen">
<item name="android:textColor">#FFFFFF</item>
</style>
</resources>
Отлично сработало. Кроме того, он также делает текст на блесне белым, что трудно читать.
ОК, поэтому я хочу, чтобы цвет spinner оставался черным, а все остальное - белым.
Я нашел этот вопрос , который показал, как установить цвет текста Spinner, и он работает, но только когда я также не устанавливаю глобальный textColor.
Так что следующее не работает:
<resources>
<style name="GlobalTheme" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen">
<item name="android:textColor">#FFFFFF</item>
<item name="android:spinnerItemStyle">@style/GlobalThemeSpinnerItem</item>
</style>
<style name="GlobalThemeSpinnerItem" parent="android:Widget.TextView.SpinnerItem">
<item name="android:textAppearance">@style/GlobalThemeTextAppearanceSpinnerItem</item>
</style>
<style name="GlobalThemeTextAppearanceSpinnerItem" parent="android:TextAppearance.Widget.TextView.SpinnerItem">
<item name="android:textColor">#000000</item>
</style>
</resources>
Полагаю, я надеялся, что это будет похоже на CSS, и все будет каскадно (т. Е. «Весь текст будет белым, за исключением того, что находится в счетчике»). Если я уберу строку android:textColor
в основной теме, цветовой трюк будет работать нормально.
Похоже, SpinnerItem
происходит от TextView
, поэтому я попытался создать разделение типа textViewStyle
, подобное разделению spinnerItemStyle
, но безуспешно.
В отличие от большинства людей, которые спрашивают об этом, я хочу как можно больше хранить его в XML. Кто-нибудь знает, что я делаю не так?