El estilo de botón predeterminado de Android no funciona
Estoy intentando fijar mis estilos para hacer todos los botones una combinación de color particular, específicamente azul con el texto blanco. Aquí está mi styles.xml principal:
<resources> <style name="CustomTheme" parent="MaterialDrawerTheme.Light.DarkToolbar"> <!-- various items --> <item name="android:buttonStyle">@style/ButtonStyle</item> </style> <!-- a couple of other styles --> <style name="ButtonStyle" parent="android:style/Widget.Button"> <item name="android:textSize">19sp</item> <item name="android:textColor">@color/primaryTextContrast</item> <item name="android:background">@color/primary</item> </style> </resources>
Y en el manifiesto:
- Diferentes estilos de colorControlActivated en Android
- Error al recuperar el padre del elemento: No se encontró ningún recurso que coincida con el nombre dado 'android: Theme.Material.Light'
- Establecer estilo en TableRow en Android
- PrimaryDark no establece el color de StatusBar en android
- Superposición de la barra de acción no funciona
<application android:name=".CustomApplication" android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/application_name" android:theme="@style/CustomTheme">
color/primary
es azul oscuro, y color/primaryTextContrast
es blanco. En Lollipop, el botón parece perfecto. En un dispositivo 4.1, es gris claro con texto negro. Cada recurso que he encontrado para hacer esto se parece exactamente a lo que estoy haciendo así que no sé lo que me falta aquí.
Tengo un problema similar con el control de tamaño de texto en la definición de estilo de base también.
Actualización: aquí están los colores.
<resources> <color name="primary">#3F51B5</color> <color name="dark">#303F9F</color> <color name="accent">#FFCA28</color> <color name="background">@android:color/white</color> <!-- Color for text displayed on top of the primary or dark color --> <color name="primaryTextContrast">@android:color/white</color> <!-- Color for text displayed on the background color (which I think will always be white) --> <color name="basicText">@color/primary</color> <!-- Color for text displayed on the accent color --> <color name="accentText">#303F9F</color> </resources>
Aquí está v19 / styles.xml:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="FullscreenTheme" parent="MaterialDrawerTheme.Light.DarkToolbar.TranslucentStatus"> <item name="android:windowTranslucentNavigation">true</item> <item name="android:windowNoTitle">true</item> <item name="android:windowTranslucentStatus">true</item> </style> </resources>
Aquí v21:
<?xml version="1.0" encoding="utf-8"?> <resources> <style name="AppTheme" parent="CustomTheme"> <item name="android:windowContentTransitions">true</item> <item name="android:windowAllowEnterTransitionOverlap">true</item> <item name="android:windowAllowReturnTransitionOverlap">true</item> <item name="android:windowSharedElementEnterTransition">@android:transition/move</item> <item name="android:windowSharedElementExitTransition">@android:transition/move</item> </style> </resources>
No creo que ninguno de estos es lo que está haciendo que funcione correctamente en 5.1.
- Cómo configurar el estilo a un progressBar mediante programación en Android
- Problema de animación de tema de diálogo
- Cómo dar al usuario la posibilidad de cambiar entre diferentes colores skin en tu aplicación
- Cambiar el color de Switch en Android
- Cómo cambiar el color de fondo del título de ActionBar?
- ¿Cómo hacer transparente AppCompat estilo?
- Cambio de color de texto de la barra de herramientas de Lollipop
- ¿Cómo cambiar el color de la flecha trasera en el nuevo tema material?
Usando AppCompat 22.1.+
( 22.2.0
debería funcionar también), 22.2.0
un estilo como este:
<style name="MyApp.Button.Red" parent="Base.Widget.AppCompat.Button"> <item name="colorButtonNormal">@color/primary</item> <item name="android:colorButtonNormal">@color/primary</item> <item name="android:textColor">@android:color/white</item> </style>
Y luego aplicó el tema en un botón utilizando el atributo theme
nativo de espacio de nombres android
, como se dijo en este post impresionante de Chris Banes.
<Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="@string/sign_up_button" android:theme="@style/MyApp.Button.Red" />
Intenté agregar buttonStyle
sin el prefijo de android:
y resolvió el problema. Sí, raro.
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="buttonStyle">@style/ButtonStyle</item> <item name="android:buttonStyle">@style/ButtonStyle</item> </style>
Gradle: compile 'com.android.support:appcompat-v7:22.2.0'
Para que el tema funcione correctamente en android lollipop, debe extender ActionBarActivity en lugar de Actividad . Al hacer este cambio, la configuración del tema debería funcionar correctamente. Esto es general para otras personas que para la versión inferior de android, no deberías usar android: tag en la definición de nombre de elemento `
- Cómo manejar el evento táctil en el mapa de google (MapFragment)?
- El exponente privado de Android KeyStore no se puede extraer