Diálogo de alerta de Android con un fondo adicional

Recientemente migré mi aplicación a Material Design y me topé con este problema con mis diálogos de alerta:

Diálogo parece estar teniendo dos fondos y no sé cómo deshacerse del fondo exterior

Estoy aplicando el estilo de diálogo como este:

<item name="android:alertDialogTheme">@style/Theme.AlertDialog</item>

Y Theme.AlertDialog tiene este aspecto:

 <style name="Theme.AlertDialog" parent="Base.V14.Theme.AppCompat.Dialog"> <item name="colorPrimary">@color/theme_primary</item> <item name="colorPrimaryDark">@color/theme_primary_dark</item> <item name="colorAccent">@color/theme_accent_dark</item> </style> 

Esto está sucediendo en mi dispositivo Kitkat y funciona bien en Lollipop. ¿Me puede ayudar a deshacerse de ese fondo exterior?

El punto es aquí:

 <style name="Theme.AlertDialog" parent="Base.V14.Theme.AppCompat.Dialog"> ... <item name="colorPrimary">@color/theme_primary</item> <item name="colorPrimaryDark">@color/theme_primary_dark</item> <item name="colorAccent">@color/theme_accent_dark</item> ... <item name="android:windowBackground">@android:color/transparent</item> ... </style> 

Como Ironman me dijo aquí , asegúrese de importar la clase correcta.

Derecha: import android.support.v7.app.AlertDialog;

Mal: import android.app.AlertDialog;

Utilizar el tema en el padre

 AlertDialog.THEME_DEVICE_DEFAULT_LIGHT 

Añada los estilos a continuación. Tienes que personalizar el fondo también.

  <item name="android:windowFrame">@null</item> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:windowIsFloating">true</item> <item name="android:windowContentOverlay">@null</item> <item name="android:windowTitleStyle">@null</item> <item name="android:windowAnimationStyle">@android:style/Animation.Dialog</item> <item name="android:backgroundDimEnabled">false</item> <item name="android:background">@android:color/transparent</item> 

Usar abajo también funciona

 <item name="android:windowBackground">@android:color/transparent</item> <item name="android:background">@android:color/transparent</item> 

También puede establecer en su código mediante

 dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); 

Y esto debe ser antes de setContentView

 dialog.setContentView(R.layout.dialog); 

Tenía exactamente el mismo síntoma pero para mí era realmente que había utilizado los marcos estándares AlertDialog (y su constructor) en vez de android.support.v7.app.AlertDialog, cambiando para utilizar el de la biblioteca de la ayuda fijó el problema para yo.

Yo había enfrentado el mismo problema pero lo he resuelto. De esta forma, si quieres un cuadro de diálogo blanco tanto para Lollipop como para Lollipop, usa el estilo de abajo para Lollipop y usa AlertDialog.THEME_DEVICE_DEFAULT_LIGHT para bajar Lollipop.

Vea este ejemplo:

 <style name="CustomDialogTheme" parent="Theme.AppCompat.Light.Dialog.Alert"> <item name="android:textColorPrimary">@color/black</item> <item name="android:background">@android:color/white</item> <item name="android:windowBackground">@android:color/transparent</item> </style> 

Y código JAVA:

 if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.KITKAT) { dialogBuilder = new AlertDialog.Builder(this, R.style.CustomDialogTheme).create(); } else { dialogBuilder = new AlertDialog.Builder(this, AlertDialog.THEME_DEVICE_DEFAULT_LIGHT).create(); } 
  • Forma Parámetros de dibujo dependiendo del estilo aplicado
  • ¿Por qué utiliza una muestra? Al referenciar el estilo listSeparatorTextViewStyle?
  • ¿Por qué no puedo hacer referencia al atributo original del tema de android de colors.xml?
  • FitSystemWindows programaticamente para la transparencia de la barra de estado
  • Atributos personalizados en styles.xml
  • Android AlertDialog con esquinas redondeadas
  • Android edittext cambiar el estilo del menú contextual emergente
  • Configuración de estilos de vistas agregadas mediante programación
  • En Android XML, ¿puedo establecer buttonStyleSmall o Button.Small como un estilo padre para un estilo personalizado?
  • ¿Por qué el fondo de ProgressDialog no se establece en el transparente?
  • Quitar el rectángulo de color de fondo adicional del menú de desbordamiento entre / salir de las animaciones?
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.