Color del texto del botón AlertDialog con la biblioteca de soporte v24.2.1

Estoy teniendo problemas con el AlertDialog. Los botones no utilizan el accentColor para configurar el color del texto del botón.

Estoy utilizando la biblioteca de soporte más reciente, v24.2.1. Estoy diseñando mis diálogos en mi styles.xml de la siguiente manera:

<style name="Base.Theme" parent="Theme.AppCompat.Light.NoActionBar"> <item name="android:alertDialogTheme">@style/Widget.DialogStyle</item> <item name="alertDialogTheme">@style/Widget.DialogStyle</item> </style> 

Y el Widget.DialogStyle se ve así:

 <style name="Widget.DialogStyle" parent="@style/Theme.AppCompat.Light.Dialog.Alert"> <item name="android:colorAccent" tools:targetApi="lollipop">@color/primaryColor</item> <item name="colorAccent">@color/primaryColor</item> <item name="android:textColorPrimary">@color/primaryText</item> <item name="android:textColor">@color/primaryText</item> <item name="android:background">@color/backgroundColor</item> <item name="android:textAppearanceLarge">@color/primaryText</item> <item name="android:windowNoTitle">true</item> <item name="android:windowIsFloating">true</item> </style> 

En la API de la aplicación inferior a 24 los botones de diálogo están coloreados con el colorAccent, pero en la API 24 este no es más el comportamiento (el texto es negro, debe ser de color naranja). Vea la siguiente captura de pantalla .

¿Hay alguien que sabe cómo recuperar el accentColor en los botones? Gracias.

Para algunas implementaciones de AlertDialog , los botones están contenidos en una ButtonBar y toman su estilo de buttonBarButtonStyle . Por lo tanto, tiene que anular la configuración que hereda del tema principal ( Theme.AppCompat.Light.Dialog.Alert ).

Agregue el elemento siguiente a Widget.DialogStyle :

 <item name="buttonBarButtonStyle">@style/MyButtonStyle</item> 

Y añadir otro estilo llamado MyButtonStyle como este:

 <style name="MyButtonStyle" parent="Widget.AppCompat.Button.Borderless"> <!-- Set background drawable and text size of the buttons here <item name="android:background">@color/my_dialog_dark</item>--> <item name="android:textSize">18sp</item> <!-- this is the button text color! --> <item name="android:textColor">@color/primaryColor</item> </style> 

EDITAR

Gracias a kirtan403 por señalar esto: también puede usar otro estilo padre para los botones si Widget.AppCompat.Button.Borderless no cumple con sus requisitos.

Un ejemplo de nicola.v … @ icapps.com utilizando Widget.AppCompat.Button.ButtonBar.AlertDialog como estilo padre para los botones se pueden encontrar en el AOSP Issue 220699: colorAccent no se aplica a los botones AlertDialog en Android N.

Asegúrese de que está importando el AlertDialog correcto:

 import android.support.v7.app.AlertDialog 

Intente también inflar el diálogo con otro constructor de AlertDialog.Builder :

 android.support.v7.app.AlertDialog.Builder#Builder(android.content.Context, int) 

Lo que significa que el segundo parámetro es el estilo del diálogo:

 mDialog = new AlertDialog.Builder(context, R.style.Widget.DialogStyle).create(); 

EDITAR:
Compartir el código, que utilizo para mostrar el cuadro de diálogo de alerta:

 public AlertDialog showSimpleDialog(Context context, String title, String message, String btnOk, DialogInterface.OnClickListener handler) { if (mDialog != null && mDialog.isShowing()) { mDialog.dismiss(); mDialog = null; } mDialog = new AlertDialog.Builder(context, R.style.AppTheme_Dialog).create(); mDialog.setTitle(title); mDialog.setMessage(message); mDialog.setButton(DialogInterface.BUTTON_POSITIVE, btnOk, handler); mDialog.setCanceledOnTouchOutside(false); mDialog.show(); return mDialog; } 

Y el estilo:

 <style name="AppTheme.Dialog" parent="Theme.AppCompat.Light.Dialog.Alert"> <item name="colorAccent">@color/colorPrimary</item> //blue <item name="android:textColorPrimary">@color/primary_text_material_light</item> //black <item name="android:windowMinWidthMajor">97%</item> <item name="android:windowMinWidthMinor">97%</item> </style> 

Y los botones son azules. Probado en el emulador API 24.

  • Cambiar Navegación Ver color del elemento Dinámicamente Android
  • ¿Hay una manera de establecer el color ondulado para un botón de acción flotante a través de atributos XML?
  • Iconos de flecha de retroceso y desbordamiento de color incorrecto en dispositivos pre-Lollipop después de actualizar a la biblioteca de soporte 23.2.0
  • Eliminar o ocultar el encabezado de navegaciónVer en android
  • Stick vista en la parte inferior del fragmento de un viewpager dentro de la disposición del coordinador
  • Alinear abajo casi salen de la pantalla a la parte inferior cuando se utiliza la barra de herramientas deslizante
  • No se puede usar srcCompat para ImageViews en android
  • Panning google map en CoordinatorLayout hace que recyclerview se desplace en android design support library 23.0.1
  • CollapsingToolbarLayout falla en los dispositivos 4.4 (java.lang.IllegalArgumentException: el radio debe ser> 0)
  • TabLayout pestaña de pestaña seleccionada
  • ¿Puedo configurar los estilos personalizados globales de aplicaciones para los widgets de Android-support-design?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.