¿Cómo cambio el textColorPrimary en un tema?

Estoy cambiando el tema de una actividad en onCreate usando setTheme (estoy haciendo eso incluso antes de llamar a super.onCreate (), ya que se supone que es más confiable).

Funciona en el sentido de que cambia el fondo y los colores de primer plano. Sin embargo, mi diseño tiene algunos elementos que utilizan estilos como textAppearanceLarge. Ahora, el textAppearanceLarge de Android utiliza internamente el textPrimaryColor – que sigue sin cambiar por mi tema.

Intenté anular el color de texto principal en mi tema, pero eso no parece funcionar.

Aquí está la parte crucial del tema:

<style name="Theme.MyApp.White"> <item name="android:background">@android:color/white</item> <item name="android:textColor">#000000</item> </style> 

El fondo aparece blanco, los TextViews llanos aparecen en negro … pero los TextViews que utilizan textAppearanceLarge son blancos, y como tales invisibles (blanco sobre blanco).

He probado cosas como esta:

  <item name="android:ColorPrimary">#000000</item> <item name="android:textColorPrimary">#000000</item> <item name="android:attr/textColorPrimary">#000000</item> 

Pero ninguno de ellos hace nada. ¿Cuál es el truco de magia?

En lugar de usar textAppearanceLarge en el diseño (si está usando xml para crear el diseño), defina su propio estilo textAppearanceLarge en styles.xml que emule el android predeterminado, excepto que puede cambiar el color a blanco .

Diseño xml:

 <!-- example textview --> <TextView style="@style/large" android:text="text goes here"></TextView> 

Entonces en el styles.xml

 <style name="large"> <item name="android:textColor">@android:color/white</item> <!-- other necessary items here like font etc.--> </style> 

La única diferencia entre "estilo" y "tema" es el ámbito en el que se aplica un estilo. Un estilo aplicado a una actividad se llama un tema.

Aquí está un buen writeup en el asunto: http://brainflush.wordpress.com/2009/03/15/understanding-android-themes-and-styles/

Resulta que estaba ladrando el árbol equivocado. Anulando los colores y todo funcionó bien. Sin embargo, mediante la definición de android:background en mi tema, todo simplemente completamente desordenado, y todo el texto parecía blanco, a pesar de que sobrepasar todos los colores (incluyendo textColorPrimary). Omitiendo android:background hizo el truco.

  • El reajuste de MediaPlayer de Android congela la interfaz de usuario
  • Estilo de elemento de menú Arc como en la aplicación tumblr para Android
  • Programmatically no puede alinear ImageView en RelativeLayout
  • Cómo rotar EditText manualmente en Android
  • ¿Puede Android WebView HTML influenciar las características del teclado o del teclado?
  • Ver contenido a continuación ExpandableListView
  • Cambiar el contenido de la vista de la actividad dinámicamente
  • ¿Están disponibles marcadores para la navegación de vistas panorámicas en Android?
  • Android Night Mode sin CarModeEnabled
  • Los elementos de menú no se muestran en SherlockFragmentActivity con pestañas
  • Android: mantiene varias instancias de una actividad en la pila posterior
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.