2016-02-10 15 views
5

Ich möchte ein Dialogfeld mit Vollbild, aber nicht die Statusleiste ausblenden.Android machen Dialog Vollbild mit Statusleiste zeigt

Wenn Sie den Stil Theme_Light_NoTitleBar_Fullscreen verwenden, belegt das Dialogfeld den gesamten Bildschirm.

Wenn Sie den Stil Theme_Material_Light_NoActionBar_TranslucentDecor verwenden, scheint es zu funktionieren, aber der obere Teil des Dialogfelds wird tatsächlich transparent. Ich kann es besser machen, indem ich die Höhe der Statusleiste erkundige und das Top-Padding zu meinem Dialog-Layout hinzufüge. Diese Lösung scheint gut zu funktionieren, außer dass sie nicht funktioniert, wenn ich eine Animation angehängt habe.

Ich bin sehr verwirrt, warum Google das Dialogfeld so kompliziert zu verwenden, und wenn ich richtig mache, um ein Vollbild-Dialogfeld hier zu machen?

Antwort

2

Ich habe ein snipplet von einem Blog gefunden, nach ein paar Versuchen fand ich, dass ich Theme_Black_NoTitleBar_Fullscreen im Konstruktor zusammen mit dem snipplet während onCreate verwenden muss. Jetzt ist mein Dialog Vollbild und zeigt die Statusleiste an.

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

Verwenden Sie einfach THEME_BLACK_NoTitleBar für mich gearbeitet !!!

+0

für mich gearbeitet. Beste Lösung! – TrueCH

+0

arbeitete für mich auch, sollte diese Antwort mehr upvote bekommen. – Nadimuddin

1

Verwenden android.R.style.Theme_Black_NoTitleBar

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

Example screen

Verwandte Themen