2016-02-10 16 views
5

Desidero creare una finestra di dialogo a schermo intero ma senza nascondere la barra di stato.Android make Dialogo a schermo intero con barra di stato che mostra

Se si utilizza lo stile Theme_Light_NoTitleBar_Fullscreen, la finestra di dialogo occupa l'intera schermata.

Se si utilizza lo stile Theme_Material_Light_NoActionBar_TranslucentDecor, sembra funzionare ma la parte superiore della finestra di dialogo diventa effettivamente trasparente. Posso migliorarlo chiedendo l'altezza della barra di stato e aggiungendo il riempimento superiore al mio layout di dialogo. Questa soluzione sembra funzionare bene, tranne che non funziona se ho collegato un'animazione ad esso.

Sono molto confuso perché Google rende la finestra di dialogo così complicata da usare, e se sto facendo correttamente per fare una finestra di dialogo a schermo intero qui?

risposta

2

Ho trovato uno snipplet da un blog, dopo alcuni tentativi ho scoperto che devo usare Theme_Black_NoTitleBar_Fullscreen nel costruttore, insieme allo snipplet durante il onCreate. ora la mia finestra di dialogo è a schermo intero e mostra la barra di stato.

public YourCustomDiag(Activity act){ 
    //step 1, required. to stretch the dialog to full screen 
    super(act, android.R.style.Theme_Black_NoTitleBar_Fullscreen); 
} 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    requestWindowFeature(Window.FEATURE_NO_TITLE); 
    setContentView(R.layout.custom_dialog_layout); 
    KeepStatusBar(); 
} 

//step 2, required 
private void KeepStatusBar(){  
    WindowManager.LayoutParams attrs = getWindow().getAttributes(); 
    attrs.flags &= ~WindowManager.LayoutParams.FLAG_FULLSCREEN; 
    getWindow().setAttributes(attrs); 
} 

this is the source where i found the snipplet

6

Basta usare THEME_BLACK_NoTitleBar lavorato per me !!!

+0

lavorato per me. Soluzione migliore! – TrueCH

+0

ha funzionato anche per me, questa risposta dovrebbe avere più upvote. – Nadimuddin

1

Usa android.R.style.Theme_Black_NoTitleBar

AlertDialog.Builder builder = new AlertDialog.Builder(context, 
        android.R.style.Theme_Black_NoTitleBar); 

Example screen