2012-01-12 15 views
20

tengo una actividad que es el tema que es Theme.Transparent:Eliminar borde, relleno de diálogo

<style name="Theme.Transparent" parent="android:Theme.Dialog"> 
    <item name="android:windowIsTranslucent">true</item> 
    <item name="android:windowNoTitle">false</item> 
    <item name="android:windowIsFloating">true</item> 
    <item name="android:backgroundDimEnabled">false</item> 
    <item name="android:gravity">top</item> 
</style> 

estoy tratando de deshacerse de la frontera y el relleno alrededor de ella .. quiero para llenar la horizontal de la pantalla. y sin borde gris favor ayuda :) enter image description here

Respuesta

71

Asegúrese de crear su diálogo incluir su tema personalizado:

Dialog dialog = new Dialog(this, R.style.MyDialogTheme); 

el tema personalizado necesita para llenar la pantalla y desactivar un par de Android framework defaults:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <style name="MyDialogTheme" parent="android:Theme.Dialog"> 
     <!-- Fill the screen --> 
     <item name="android:layout_width">fill_parent</item> 
     <item name="android:layout_height">fill_parent</item> 

     <!-- No backgrounds, titles or window float --> 
     <item name="android:windowBackground">@null</item> 
     <item name="android:windowNoTitle">true</item> 
     <item name="android:windowIsFloating">false</item>  

     <!-- Just to prove it's working --> 
     <item name="android:background">#ff0000</item> 
    </style> 

</resources> 
+0

GRACIAS! :) ​​@ null hizo el truco! solo puedo otorgar la recompensa en 17 horas. Pero lo haré. muchas gracias. – Guy

+0

Feliz de ayudar; sorprendido de que nadie más haya respondido a esto. Ciertamente no es obvio, pero consultar la fuente de Android en github puede ayudar a descubrir lo que está sucediendo por defecto. –

+0

Ojalá pudiera votar esto dos veces. Nota para los píos: anular la ventana Antecedentes es la única forma de que el cuadro de diálogo muestre FLUSH, es decir, sin indicios de la vista detrás de él. David, eres rockero – HappyKatz

11

Igual que el anterior, pero hacerlo en código en lugar de en xml funcionó para mí.

getDialog().getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT)); 
+0

Descubrí que de esta manera no funciona tan bien como la respuesta aceptada. De esta manera, se desvanece cualquier relleno alrededor del cuadro de diálogo, pero en realidad no elimina el relleno. Este es un problema cuando el usuario hace clic en el cuadro de diálogo para cancelarlo, pero no se cancelará porque el relleno aún está disponible pero está disponible. –

+0

¡Muchas gracias muchísimo! Este trabajo para mí! – mghhgm

+0

Genial. Gracias hombre – FaisalAhmed

5

Establezca el ancho y la altura para que coincida con el contenedor primario.

dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); 
    WindowManager.LayoutParams wmlp = dialog.getWindow() 
      .getAttributes(); 
    wmlp.width = android.view.WindowManager.LayoutParams.MATCH_PARENT; 
    wmlp.height = android.view.WindowManager.LayoutParams.WRAP_CONTENT; 
+0

Perfecto, ¡Respuesta! :) –

Cuestiones relacionadas