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:

  <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.

3 Solutions collect form web for “El estilo de botón predeterminado de Android no funciona”

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 `

  • DatePicker con un fondo
  • Evitar que la actividad "Diálogo" interactúe con la actividad de fondo al hacer clic fuera de los límites
  • ¿Por qué el texto de mi botón está forzado a TODOS LOS MAYÚSCULAS en Lollipop?
  • Android Tamaño de diálogo de tamaño fijo: ¿Qué es Major & Minor?
  • Android: cambio de color de la barra de estado para el nivel de API inferior a 21
  • EditText cómo activar copia / pegar popup sin barra de acción?
  • Actionbarsherlock - cambia el color de la línea de acción
  • Área de toque de Scrollbar en Android 6
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.