Alertdialog en el diseño del material
yo apenas sigo este http://www.laurivan.com/make-dialogs-obey-your-material-theme/ para diseñar mi dialogo de alerta en estilo material del diseño. Sin embargo, descubrí que todavía no puedo estilo igual que este sitio, el siguiente es mi código y captura de pantalla:
values-v14 / styles.xml:
- Cómo crear una interfaz de usuario como la aplicación Inbox de Google en Android
- ¿Qué significa el número junto a un color?
- Android: cambiar dinámicamente el icono FAB (botón de acción flotante) del código
- Diseño de material android con AppCompatActivity
- ¿Cuál debe ser el color de la ondulación, colorPrimary o colorAccent? (Diseño de material)
<!-- Base application theme for API 14+. This theme completely replaces AppBaseTheme from BOTH res/values/styles.xml and res/values-v11/styles.xml on API 14+ devices. --> <style name="AppBaseTheme" parent="android:Theme.Holo.Light.DarkActionBar"> <!-- API 14 theme customizations can go here. --> </style> <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar"> <item name="android:windowContentOverlay">@null</item> <item name="android:windowActionBarOverlay">true</item> <!-- colorPrimary is used for the default action bar background --> <item name="colorPrimary">@color/colorPrimary</item> <!-- colorPrimaryDark is used for the status bar --> <item name="colorPrimaryDark">@color/colorPrimaryDark</item> <item name="android:dialogTheme">@style/MyDialogTheme</item> <item name="android:alertDialogTheme">@style/MyDialogTheme</item> </style> <style name="MyDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert"> <item name="android:windowBackground">@color/transparent</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowIsFloating">true</item> <item name="android:windowCloseOnTouchOutside">false</item> </style>
valores / color.xml
<resources> <color name="colorPrimaryDark">#3367d6</color> <color name="colorPrimary">#4285f4</color> <color name="windowBackgroundColor">#eeeeee</color> <color name = "transparent">#0000</color> </resources>
captura de pantalla:
¡Quiero el divisor quitado y btn está en el estilo derecho del relleno, gracias!
- Barra de herramientas de Android + Diseño de pestaña + Cajón, Ocultar barra de herramientas al desplazarse y llevar TabLayout a la parte superior
- ¿Cómo hacer que el menú emergente de desbordamiento evite obstruir la barra de acción?
- Android TextInputLayouts perder texto / contenido al volver en la transacción de fragmentos
- ¿Cómo alinear widget.TextInputLayout con la vista de MaterialSpinner?
- SetLayoutManager NullPointException en RecyclerView
- ? Android: attr / selectableItemBackground no es lo suficientemente visible sobre un fondo oscuro
- ¿Por qué mi vista de barra de acciones personalizadas no coincide con "parent" cuando se utiliza appcompat y Toolbar?
- ¿Cuál es la mejor manera de crear una tabla de datos en android?
Con la nueva AppCompat v22.1
puede utilizar el nuevo android.support.v7.app.AlertDialog .
Solo 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>
Puede utilizar un único archivo de estilo para todos los dispositivos.
La mejor solución que he encontrado para diseñar el diálogo es incluir las propiedades en su styles.xml como usted tiene, también establecer un color transparente (en colors.xml) asegurándose de incluir el #AARRGGBB completo:
<color name="transparent">#00000000</color>
Luego también asegúrese de agregar el tema a su diseño de diálogo:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="wrap_content" android:layout_height="wrap_content" android:theme="@style/AppTheme"> <TextView android:id="@+id/dialog_info" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="16dp" android:layout_marginLeft="4dp" android:layout_marginRight="4dp" android:layout_marginBottom="4dp" android:text="Dialog Text"/> </LinearLayout>
Nota: debe establecer como padre del "MyDialogTheme" (en su ejemplo) al padre de "Theme.AppCompat.Light.Dialog"
Siguiendo la sección "Pasar eventos de vuelta al host del diálogo" en la guía de desarrolladores aquí: Link
asegurándose de anular tanto onAttach () como onCreateDialog () en la clase para su fragmento de diálogo.
note que no tiene que hacer que su actividad principal extienda FragmentActivity, puede extender AppCompatActivity e incluir en la clase de actividad la biblioteca (para API 11+):
android.app.DialogFragment en lugar de android.support.v4.app.DialogFragment
Aunque la captura de pantalla muestra un cuadro de diálogo de selección de fecha, lo anterior funciona para alertas y / o diálogos simples (y más usados). En el enlace de documentación que he descrito anteriormente, proporcionan más información específica para los selectores de fecha y hora.