2012-05-02 26 views
14

¿Cómo se muestra el cuadro de diálogo personalizado como centro del contenedor?Android: mostrar el cuadro de diálogo personalizado en el centro del contenedor

Dialog customdialog = new Dialog(this,android.R.style.Theme_Translucent_NoTitleBar); 
Window window = customdialog.getWindow(); 
window.setLayout(LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); 
window.setGravity(Gravity.CENTER); 

R.style.Theme_Translucent_NoTitleBar - se utiliza para eliminar el borde de cutomdialog. Una vez que use esta línea, el cuadro de diálogo aparecerá en la esquina superior izquierda de la tableta.

¿Alguien me puede ayudar a resolver este problema?

+0

para eliminar el borde crear fondo personalizado y agregar esto al estilo ​​@ android: color/transparent

Respuesta

37

Cambie el fill_parent por el wrap_content. Espero que este sea el problema con el que aparece el diálogo en la esquina de la actividad. Se necesita el espacio de todo el diseño. Cambiar esto puede ayudarlo a obtener lo que realmente quiere.

Window window = customdialog.getWindow(); 
window.setLayout(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
window.setGravity(Gravity.CENTER); 
+1

Gracias. Funciona bien. – Kamal

+1

Aceptando la respuesta y votando nos ayudará a mejorar la reputación Así que por favor haz lo mismo con esta ans @Kamal Tan feliz de ayudarte. :-) –

+0

esto funciona para mí ... Muchas gracias por este uso completo responder. – Deepak

8

Lo agregué al estilo personalizado del diálogo y funcionó bien.

<item name="android:layout_gravity">center</item> 

El ancho y alto de mi cuadro de diálogo están establecidos en wrap_content. Los padres del estilo es

matriz = "@ android: estilo/Theme.Light"

0

voy a ir a este pedazo de código:

 WindowManager.LayoutParams lp = new WindowManager.LayoutParams(); 
     Window window = dialog.getWindow(); 
     lp.copyFrom(window.getAttributes()); 
     //This makes the dialog take up the full width 
     lp.width = WindowManager.LayoutParams.MATCH_PARENT; 
     lp.height = WindowManager.LayoutParams.MATCH_PARENT; 
     window.setAttributes(lp); 

Dónde diálogo, es el objeto de diálogo que se mostrarán . Dentro del diseño del diálogo puede definir la vista del diseño como desee: centrado o no.

Cuestiones relacionadas