2012-05-02 7 views
14

Come visualizzare la finestra di dialogo personalizzata come un centro del contenitore?Android: visualizza la finestra di dialogo personalizzata al centro del contenitore

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 - è utilizzato per rimuovere il bordo per cutomdialog. Una volta che ho usato questa linea, la finestra di dialogo apparirà nell'angolo in alto a sinistra del tablet?

Qualcuno può aiutarmi a risolvere questo problema?

+0

per rimuovere bordo creare sfondo personalizzato e aggiungerlo allo stile ​​@ android: colore/trasparente

risposta

37

Cambia il fill_parent in wrap_content. Spero che questo sia il problema che la finestra di dialogo compaia all'angolo dell'attività. Prende lo spazio dell'intero layout. Cambiare questo potrebbe aiutarti a ottenere ciò che davvero volevi.

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

Grazie. Funziona bene. – Kamal

+1

Accettare la risposta e svalutarla ci aiuterà entrambi a migliorare la reputazione Quindi per favore fai lo stesso con questo ans @Kamal Sono così felice di aiutarti. :-) –

+0

questo funziona per me ... Grazie mille per questo uso completo risposta. – Deepak

8

Ho aggiunto questo allo stile personalizzato della finestra di dialogo e ha funzionato correttamente.

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

La larghezza e l'altezza della finestra di dialogo sono impostate su wrap_content. padre del stile è

parent = "@ Android: Stile/Theme.Light"

0

andrò per questo pezzo di codice:

 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); 

Dove finestra di dialogo, è l'oggetto finestra di dialogo per essere mostrato . All'interno del layout della finestra di dialogo è possibile definire la visualizzazione del layout come desiderato: centrato o meno.

Problemi correlati