Ich habe viele Varianten versucht, Vollbilddialog zu erstellen, aber ich konnte nicht. Ich brauche etwas, so, mit zwei Tasten: http://i.stack.imgur.com/dLSx8.pngWie man Material Design Vollbild-Dialog machen?
Antwort
Wenn Sie wirklich einen Vollbild-Dialog wollen, erweitern Sie einfach die Dialog
Klasse und fügen Sie ein paar Verbesserungen hinzu. (Sie können dies auch erreichen, ohne etwas zu erweitern, aber ich dachte, Sie könnten alles an einem Ort behalten)
In Ihrem Konstruktor müssen Sie den Stil (für Ihr Material Aussehen, oder es kann ein leeres Stil-Tag sein)):
super(context, R.style.DialogStyle);
Sie auch die Ansicht festlegen müssen: (Dies ist, wo würden Sie definieren, wo/was diese beiden Tasten)
setContentView(R.layout.dialog_view);
Schließlich könnten Sie auch die Windows-Layout ändern müssen Parameter:
Ich habe auf den Geräten gefunden, die ich getestet habe, dass die Einstellung der Stil der wichtigste ist.
* EDIT *
Um es ein wenig mehr klar Sie haben zwei Möglichkeiten:
public class MyDialog extends Dialog {
public MyDialog(Context context) {
super(context, R.style.YourStyle);
setContentView(R.layout.dialog_view);
getWindow().setLayout(WindowManager.LayoutParams.MATCH_PARENT, WindowManager.LayoutParams.MATCH_PARENT); //Optional
//Any other code you want in your constructor
}
}
Dann, wenn Sie es wollen zeigen:
//Inside your activity
MyDialog dialog = new MyDialog(this); //Assuming you are in an activity 'this' is your context
dialog.show();
Oder Sie können tun Sie das einfach:
Dialog normalDialog = new Dialog(this, R.style.YourStyle);
normalDialog.setContentView(R.layout.dialog_view);
normalDialog.show();
Danke für Ihre Antworten. Aber ich habe nicht verstanden, wo dieser Code verwendet werden muss: super (context, R.style.DialogStyle) –
Wenn Sie nicht wissen, wohin das gehen würde, müssen Sie etwas mehr Forschung über Android-Entwicklung tun. Aber ich habe einige Änderungen hinzugefügt, um Ihnen ein wenig mehr zu helfen. –
Oh! Vielen Dank! Es ist was ich brauche. Und wenn jemand diesen Fehler übernimmt: android.viewWindowManager $ BadTokenException: Fenster kann nicht hinzugefügt werden - token null ist nicht für eine Anwendung, verwenden Sie YourActivity.this stattdessen dies oder getApplicationContext() –
Ich stimme der Verwendung einer neuen Aktivität zu. Legen Sie den HomeAsUp-Indikator auf den gewünschten Wert fest. Die Schaltfläche Speichern kann dann ein einzelner Menüeintrag sein, der ifRoom anzeigt.
http://developer.android.com/reference/android/app/ActionBar.html#setHomeAsUpIndicator(int)
android: showAsAction = [ "ifRoom" | "niemals" | "mitText" | "immer" | „CollapseActionView“]
Wo müssen Sie den HomeAsUpIndicator einstellen? Ursache, wenn ich getActionBar(). SetHomeAsUpIndicator verwende, nehme ich Fehler. Min API in meinem Projekt 15, aber diese Methode benötigt 18. –
Verwenden Sie 'getSupportActionBar(). SetHomeAsUpIndicator'. – ieatacid
Dies ist, was ich verwenden, um ein Vollbild-Dialog ohne Aktion Leiste anzuzeigen:
//Display fullscreen without actionbar
if(Build.VERSION.SDK_INT < Build.VERSION_CODES.LOLLIPOP) {
setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Holo_Light_NoActionBar_Fullscreen);
} else {
setStyle(DialogFragment.STYLE_NORMAL, android.R.style.Theme_Material_Light_NoActionBar_Fullscreen);
}
nur eine andere Tätigkeit verwenden und öffnen Sie sie mit 'startActivityForResult'? – tachyonflux
Imho, das ist kein Dialog, sondern eine Aktivität mit einer benutzerdefinierten Symbolleiste. – FWeigl
Versuchen Sie [dies] (https://github.com/nikialeksey/FullScreenDialog) –