He agregado el diseño del material appCompat a mi aplicación y parece que los cuadros de diálogo de alerta no están usando mis colores primario, primario oscuro o de acento.
Aquí está mi estilo base:
<style name="MaterialNavyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/apptheme_color</item>
<item name="colorPrimaryDark">@color/apptheme_color_dark</item>
<item name="colorAccent">@color/apptheme_color</item>
<item name="android:textColorPrimary">@color/action_bar_gray</item>
</style>
Según tengo entendido, el texto del botón de diálogo también debe usar estos colores. ¿Estoy equivocado en mi entendimiento o hay algo más que necesito hacer?
Solución:
La respuesta marcada me llevó por el buen camino.
<style name="MaterialNavyTheme" parent="@style/Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/apptheme_color</item>
<item name="colorPrimaryDark">@color/apptheme_color_dark</item>
<item name="colorAccent">@color/apptheme_color</item>
<item name="android:actionModeBackground">@color/apptheme_color_dark</item>
<item name="android:textColorPrimary">@color/action_bar_gray</item>
<item name="sdlDialogStyle">@style/DialogStyleLight</item>
<item name="android:seekBarStyle">@style/SeekBarNavyTheme</item>
</style>
<style name="StyledDialog" parent="Theme.AppCompat.Light.Dialog">
<item name="colorPrimary">@color/apptheme_color</item>
<item name="colorPrimaryDark">@color/apptheme_color_dark</item>
<item name="colorAccent">@color/apptheme_color</item>
</style>
Respuestas:
ACTUALIZADO EN AGO 2019 CON LOS COMPONENTES DE MATERIAL PARA LA BIBLIOTECA DE ANDROID:
Con los nuevos componentes de Material para la biblioteca de Android , puede usar la nueva
com.google.android.material.dialog.MaterialAlertDialogBuilder
clase, que se extiende desde laandroidx.appcompat.AlertDialog.Builder
clase existente y proporciona soporte para las últimas especificaciones de Diseño de materiales.Solo usa algo como esto:
Puede personalizar los colores extendiendo el
ThemeOverlay.MaterialComponents.MaterialAlertDialog
estilo:Para aplicar su estilo personalizado solo use el constructor:
Para personalizar los botones, el título y el texto del cuerpo, consulte esta publicación para obtener más detalles.
También puede cambiar globalmente el estilo en el tema de su aplicación:
CON BIBLIOTECA DE APOYO Y TEMA APPCOMPAT:
Con el nuevo
AppCompat v22.1
puede usar el nuevo android.support.v7.app.AlertDialog .Solo usa un código como este:
Y usa un estilo como este:
De lo contrario, puede definir en su tema actual:
y luego en tu código:
Aquí el AlertDialog en Kitkat:
fuente
<item name="android:alertDialogTheme">@style/AppCompatAlertDialogStyle</item>
al inicializar el generador de diálogo, pase el segundo parámetro como tema. Mostrará automáticamente el diseño del material con el nivel API 21.
o,
fuente
AppCompat no hace eso para los cuadros de diálogo (al menos no todavía)
EDITAR: lo hace ahora. asegúrese de usar
android.support.v7.app.AlertDialog
fuente
import app.AlertDialog
no me dio la aplicación Compat. Traté de averiguar qué está mal durante unos 40 minutos antes de comprobarlo ... ¡Maldita sea Google!Puedes considerar este proyecto: https://github.com/fengdai/AlertDialogPro
Puede proporcionarle diálogos de alerta de temas materiales casi lo mismo que los de lollipop. Compatible con Android 2.1.
fuente
Podrías usar
Biblioteca de diseño de materiales
La Biblioteca de diseño de materiales está hecha para cuadros de diálogo , botones y otras cosas muy alertas , como bares. Actualmente está muy desarrollado.
Guía, código, ejemplo: https://github.com/navasmdc/MaterialDesignLibrary
Guía para agregar biblioteca a Android Studio 1.0 - ¿Cómo importo la biblioteca de diseño de material a Android Studio?
.
Codificación feliz;)
fuente
Prueba esta biblioteca:
https://github.com/avast/android-styled-dialogs
Se basa en
DialogFragments
lugar deAlertDialogs
(como el de @afollestad). La principal ventaja: los cuadros de diálogo no se descartan después de la rotación y las devoluciones de llamada siguen funcionando.fuente
Por alguna razón, android: textColor solo parece actualizar el color del título. Puede cambiar el color del texto del mensaje utilizando un
fuente
Diálogos de alerta de diseño de materiales: fuente personalizada, botón, color y forma, ..
Estilo:
Salida:
fuente