Estoy escribiendo una aplicación que necesita las dos cosas siguientes:¿Cómo puedo tener un tema global con diferentes colores de texto de TextView y Spinner?
- El texto general (en
TextView
s) es necesario que haya un solo color (blanco, en este caso - fondo oscuro) - El texto en un
Spinner
necesario que haya un color diferente (negro, puesto que el blanco es demasiado difícil de leer)
utilicé un tema, aplicado a nivel de aplicación en el manifiesto, para llevar a cabo el primer punto anterior.
<resources>
<style name="GlobalTheme" parent="@android:style/Theme.Black.NoTitleBar.Fullscreen">
<item name="android:textColor">#FFFFFF</item>
</style>
</resources>
Funcionó muy bien. Excepto que también hace que el texto en la ruleta sea blanco, lo cual es difícil de leer.
OK, así que quiero que el spinner color a seguir siendo negro, pero todo lo demás ser de color blanco.
Encontré this question que mostró cómo configurar el color de texto de Spinner, y funciona, pero solo cuando no estoy configurando el textColor global también.
Así que el siguiente no funciona:
<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>
supongo que esperaba que esto sería como CSS y las cosas en cascada hacia abajo (es decir, "todo el texto será de color blanco, excepto lo que es en un spinner "). Si elimino la línea android:textColor
en el tema principal, el truco de colores del rotador funciona bien.
Parece que la SpinnerItem
deriva de TextView
así que traté de llegar a una separación textViewStyle
de tipo similar a la separación spinnerItemStyle
, pero no tuvo suerte.
A diferencia de la mayoría de las personas que preguntan sobre esto, quiero mantenerlo en el XML tanto como sea posible. ¿Alguien sabe lo que estoy haciendo mal?
¿Por qué no puedes usar parent = "android: Widget.TextView" para un color y parent = "android: Widget.TextView.SpinnerItem" para el otro? – Warpzit