Diseño de material que no diseña diálogos de alerta
He añadido el diseño de material appCompat a mi aplicación y parece que los cuadros de diálogo de alerta no utilizan los colores primario, primaryDark o acento.
Aquí está mi estilo base:
- Agregar botón como "Nuevo correo" de la aplicación de Gmail
- Barra de herramientas no está tiñendo MenuItems
- ¿Cuál es la diferencia entre la barra de acción y la recién introducida barra de herramientas?
- Los elementos de pestaña inflados en Tab Layout no coinciden con parent en android
- Cómo dejar que los elementos de Spinner aparezcan debajo de sí mismo cuando se hace clic y con el ancho completo, como en la aplicación de G +
<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 mi comprensión, el texto del botón de diálogos también debe utilizar estos colores. ¿Estoy equivocado en mi entendimiento o hay algo más que tengo que hacer?
Solución:
La respuesta marcada me puso en el camino correcto.
<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>
- Navegación inferior Ver resaltar elemento seleccionado
- FloatingActionButton setVisibility () no funciona
- Línea de diseño de materiales que rompe las reglas
- Error al inflar la clase RecyclerView
- Android TextInputLayouts perder texto / contenido al volver en la transacción de fragmentos
- Aclaración sobre Android "La elevación de atributo se utiliza sólo en el nivel API 21 y superior"
- Actionbar transparente con AppCompat-v7 21
- Cómo implementar 'tablas de datos' (componente de diseño de material) en android?
Con la nueva AppCompat v22.1
puede utilizar el nuevo android.support.v7.app.AlertDialog .
Sólo usa un código como este:
import android.support.v7.app.AlertDialog AlertDialog.Builder builder = new AlertDialog.Builder(this, R.style.AppCompatAlertDialogStyle); builder.setTitle("Dialog"); builder.setMessage("Lorem ipsum dolor ...."); builder.setPositiveButton("OK", null); builder.setNegativeButton("Cancel", null); builder.show();
Y usa un estilo como este:
<style name="AppCompatAlertDialogStyle" parent="Theme.AppCompat.Light.Dialog.Alert"> <item name="colorAccent">#FFCC00</item> <item name="android:textColorPrimary">#FFFFFF</item> <item name="android:background">#5fa3d0</item> </style>
De lo contrario, puede definir en su tema actual:
<style name="AppTheme" parent="Theme.AppCompat.Light"> <!-- your style --> <item name="alertDialogTheme">@style/AppCompatAlertDialogStyle</item> </style>
Y luego en su código:
import android.support.v7.app.AlertDialog AlertDialog.Builder builder = new AlertDialog.Builder(this);
Aquí el AlertDialog en Kitkat:
Aquí está mi solución: https://github.com/afollestad/material-dialogs
He diseñado esto con el propósito de tener cuadros de diálogo Material en todas las versiones de Android. También hace que algunas cosas como el tema más fácil.
Al inicializar el constructor de diálogo, pasar segundo parámetro como el tema. Mostrará automáticamente el diseño del material con el nivel API 21.
AlertDialog.Builder builder = new AlertDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_DARK);
o,
AlertDialog.Builder builder = new AlertDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT);
Puede considerar este proyecto: https://github.com/fengdai/AlertDialogPro
Puede proporcionarle diálogos de alerta de tema material prácticamente iguales a los de Lollipop. Compatible con Android 2.1.
AppCompat no hace eso para diálogos (aún no al menos)
EDIT: lo hace ahora. Asegúrese de usar android.support.v7.app.AlertDialog
Podrías usar
Biblioteca de diseño de materiales
Biblioteca de materiales diseñados para diálogos , botones y otras cosas como cuadros de bocadillos. 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 puedo importar la biblioteca de diseño de material a Android Studio?
.
Codificación feliz;)
Pruebe esta biblioteca:
https://github.com/avast/android-styled-dialogs
Se basa en DialogFragments
lugar de AlertDialogs
(como el de @afollestad). La ventaja principal: Los diálogos no descargan después de que la rotación y las devoluciones de llamada todavía trabajan.
Por alguna razón el androide: textColor sólo parece actualizar el color del título. Puede cambiar el color del texto del mensaje
SpannableString.AlertDialog.Builder builder = new AlertDialog.Builder(new ContextThemeWrapper(this, R.style.MyDialogTheme)); AlertDialog dialog = builder.create(); Spannable wordtoSpan = new SpannableString("I know just how to whisper, And I know just how to cry,I know just where to find the answers"); wordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 15, 30, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); dialog.setMessage(wordtoSpan); dialog.show();
- Ejecución de un programa Haskell en el sistema operativo Android
- ¿Cómo me conecto a una red Wi-Fi específica en Android mediante programación?