Transparente AlertDialog tiene fondo negro
Tengo un estilo AlertDialog
personalizado que hace transparente el cuadro AlertDialog
. Funciona bien, excepto que cuando infiero mi diseño transparente deseado en la ventana de diálogo de alerta, se muestra con un fondo negro. Mi objetivo es tener un AlertDialog
completamente transparente a donde parece que sólo hay 4 botones flotando en lugar de un marco. La imagen uno es lo que el diálogo personalizado me está dando, la imagen dos es mi deseada o lo que estoy apuntando.
Aquí está el código para el cuadro de Dialog
personalizado
- La placa de teclado mueve toda la disposición hacia arriba
- El método setCancelable (false) de AlertDialog no funciona
- Crear un AlertDialog en Android con la vista xml personalizada
- ¿Cómo hacer que el cuadro de diálogo personalizado parezca Diálogo de alertas?
- ¿Cómo eliminar la vista de los padres del niño? androide
<style name="CustomDialog" parent="android:Theme.Dialog"> <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:windowSoftInputMode">stateUnspecified|adjustPan</item> <item name="android:backgroundDimEnabled">false</item> <item name="android:background">@android:color/transparent</item> </style>
Esto es lo que estoy llamando en mi onCreate()
AlertDialog.Builder imageDialog = new AlertDialog.Builder(TimeLine.this, R.style.CustomDialog); inflater = getLayoutInflater(); View view=inflater.inflate(R.layout.tabs, null);![enter image description here][1] AlertDialog a = imageDialog.create(); a.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT)); a.setView(view, 0, 0, 0, 0); a.show();
* Edit **** ** El código para el diseño de tabulaciones xml está aquí `
<RelativeLayout android:layout_width="fill_parent" android:layout_height="match_parent" android:id="@+id/tabLayout" android:background="#000000ff"> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button2" android:layout_marginTop="206dp" android:layout_below="@+id/button4" android:layout_alignStart="@+id/button4" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button3" android:layout_alignTop="@+id/button2" android:layout_alignParentStart="true" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button4" android:layout_alignParentTop="true" android:layout_alignParentEnd="true" android:layout_marginTop="100dp" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="New Button" android:id="@+id/button" android:layout_alignParentTop="true" android:layout_alignParentStart="true" android:layout_marginTop="100dp" /> </RelativeLayout>
“
De la prueba para ver cuál es el origen del problema, he descubierto que es cierto que el diseño es transparente porque cuando cambio el color de fondo del diseño, también cambia el diálogo de alerta. Sin embargo, cuando el diseño se establece en transparente, parece que lo que hay detrás del diseño inflado es negro. Y por eso no estoy seguro de qué hacer o si es la configuración de AlertDialog
o mi código de diseño.
- mostrar texto en diálogo de alerta
- Actividad enBackPress que no muestra el diálogo de alerta
- Android AlertDialog Builder
- Cómo establecer un listener de onclick para un imagebutton en un alertdialog
- Derecho justificar texto en AlertDialog
- Android: ¿Cómo puedo recuperar Edittext.getText () en AlertDialog personalizado?
- ¿AlertDialog admite WebView?
- AlertDialog vs AlertDialog.Builder
El problema es que el AlertDialog builder
no es realmente bueno para diseñar el diálogo transparente y siempre tendrá este fondo negro que es realmente un tema para él, sino que utiliza el cuadro de Dialog
para crear un tema transparente.
muestra:
Dialog alertDialog = new Dialog(this); alertDialog.requestWindowFeature(Window.FEATURE_NO_TITLE); alertDialog.setContentView(R.layout.tabs); alertDialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); alertDialog.show();
Usar Dialog
no requiere ninguna manipulación del tema para el fondo transparente así que es básicamente fácil.
¿Ha intentado usar algo como esto:
<style name="CustomDialog" parent="@android:style/Theme.Translucent"> <item name="android:windowBackground">@android:color/transparent</item> <item name="android:colorBackgroundCacheHint">@null</item> ... </style>
EDITAR
Pruebe esto en código java
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
En su R.layout.tabs
,
Reemplazar
<RelativeLayout android:layout_width="fill_parent" android:layout_height="match_parent" android:id="@+id/tabLayout" android:background="#000000ff">
con
<RelativeLayout android:layout_width="fill_parent" android:layout_height="match_parent" android:id="@+id/tabLayout" android:background="@android:color/transparent">