No se establece el tema de Android
Tengo un tema que se niega a ser aplicado a las actividades – ninguno de los estilos se aplican. Si no layout_height
atributos layout_width
/ layout_height
para <Button>
también obtiene un error de ejecución, mostrando que la clase Button
no está siendo aplicada.
/res/values/themes.xml :
- Tema Programáticamente establecido. Cómo volver a cargar Actividad para aplicar
- Android: No se puede diseñar el divisor de hilado
- Cómo cambiar el estilo de pestaña en Android?
- No se puede hacer referencia al tema Holo desde valores-v11 / themes.xml
- Estilo de RecyclerView a nivel de tema
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="Theme" parent="android:style/Theme.Black"> <item name="android:windowNoTitle">true</item> <item name="android:buttonStyle">@style/Button</item> <item name="android:windowBackground">@color/page_background_light</item> <item name="android:textAppearance">@style/TextAppearance</item> </style> </resources>
/res/values/styles.xml :
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="TextAppearance" parent="@android:style/TextAppearance"> <item name="android:textSize">12sp</item> <item name="android:textColor">@color/darkblue</item> </style> <style name="Button" parent="@android:style/Widget.Button"> <item name="android:layout_width">fill_parent</item> <item name="android:layout_height">wrap_content</item> <!--<item name="android:textColor">#3C2F4F</item> <item name="android:textSize">20dip</item>--> </style> </resources>
Y el ajuste de manifiesto relevante:
<application android:icon="@drawable/icon" android:label="@string/app_name" android:theme="@style/Theme">
¿Cuál es el error obvio que me falta?
- Elementos del menú de desbordamiento denominados barra de acción
- Android: ¿Acabo de tener un disparo por propiedad mediante el uso de temas? ¿No hay nada como CSS en Android?
- Creación de estilo predeterminado con atributos personalizados
- Lollipop estilo EditBox
- Cómo establecer un tema diferente en un diseño
- Android: Cómo cambiar los atributos del tema dinámicamente en tiempo de ejecución de código
- ¿Cómo muestra Froyo un cuadro de diálogo encima de la pantalla de inicio?
- Android: ¿cómo cambiar el color del divisor datepicker?
He estado luchando con esto también, y creo que finalmente he encontrado lo que puede haber sido el problema – tal vez es lo mismo.
Tenía el tema personalizado definido en la carpeta res\values
, pero no en las carpetas values-v11
y values-v14
. Lo que creo que lo hizo de modo que en algunos dispositivos (especialmente el 2 que estaba probando con!), El tema no se pudo aplicar porque no existía.
Ahora veo las propiedades establecidas en mi tema personalizado (aplicado en el nivel de aplicación).
Tuve que definir explícitamente tema para cada <activity>
.
De acuerdo con esta respuesta , parece que no es posible proporcionar layout_width
y layout_height
través de estilos. Mientras compila, la excepción que plantea es:
E/AndroidRuntime(4117): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example/com.example.MainActivity}: java.lang.RuntimeException: Binary XML file line #79: You must supply a layout_width attribute.
No estoy seguro de por qué es, pero puede haber una solución. Como sugiere esta pregunta , es posible que pueda proporcionar una referencia como el parámetro width y height.
Una vez más, mis experiencias son que Android no apoya adecuadamente proporcionando las dimensiones del widget a través de estilos.
Solo por curiosidad. Trate de cambiar el nombre de su tema a algo más como FooBar.
Va a indicar lo obvio aquí, pero asegúrese de que su botón está usando el estilo correcto.
EDIT: No estoy seguro si esto fue sólo un error tipográfico en la pregunta, pero en su tema principal que referencia estilo de Android Theme.Black incorrectamente. Su código dice:
<style name="Theme" parent="android:style/Theme.Black">
Cuando debe decir:
<style name="Theme" parent="@android:style/Theme.Black">
Me siento como Lint o el compilador le ladra por eso antes de ejecutar la aplicación, pero tal vez eso ayude.
- Recortar un video de Android
- En Activity.onCreate (), ¿por qué Intent.getExtras () a veces devuelve null?