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.

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 crear barra de progreso de estilo horizontal mediante programación en Android?
  • Disposición de Android: cuándo utilizar la aplicación: vs android :?
  • EditText El relleno no funciona
  • TextInputLayout: color diferente para la etiqueta de indicación cuando no está enfocado
  • Cómo Estilo ActionBar, ficha fondo en la pestaña seleccionada
  • No se puede agregar el color principal del atributo en android drawable xml
  • Android: colores de fondo predeterminados de AppTheme
  • Cómo cambiar el estilo de selector de fecha en android?
  • Establecer un tema coherente para todos los editTexts en Android
  • Custom SearchView todo se puede hacer clic en android
  • Cómo sustituir estilos de una biblioteca que tiene su propia actividad
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.