Ich verwende eine Aktivität mit dem Dialog-Themensatz und möchte, dass sie im Vollbildmodus angezeigt wird. Ich habe alle möglichen Dinge ausprobiert und sogar den WindowManager durchlaufen, um das Fenster manuell auf volle Breite und Höhe zu erweitern, aber nichts funktioniert.
Anscheinend wird ein Dialogfenster (oder eine Aktivität mit dem Dialogthema) nur entsprechend seinem Inhalt erweitert, aber selbst das funktioniert nicht immer. Zum Beispiel zeige ich einen Fortschrittsbalkenkreis, dessen Breite und Höhe auf FILL_PARENT gesetzt ist (ebenso wie sein Layout-Container), aber der Dialog umschließt dennoch den viel kleineren Fortschrittsbalken, anstatt den Bildschirm auszufüllen.
Es muss eine Möglichkeit geben, etwas Kleines in einem Dialogfenster anzuzeigen, aber muss es auf Vollbildgröße erweitert werden, ohne dass auch die Größe des Inhalts geändert wird?
quelle
Antworten:
Ich habe die Lösung gefunden:
Gehen Sie in Ihrer Aktivität, für die der
Theme.Dialog
Stil festgelegt wurde, folgendermaßen vor:Es ist wichtig, dass Sie
Window.setLayout()
nach dem Anruf anrufensetContentView()
, sonst funktioniert es nicht.quelle
import android.view.ViewGroup.LayoutParams;
Sie können diese Werte zu Ihrem Android-Stil hinzufügen: windowMinWidthMajor und android: windowMinWidthMinor
quelle
Ich möchte nur 80% des Bildschirms ausfüllen, weil mir das unten gefallen hat
Es funktioniert nur, wenn ich die Zeile getwindow (). setLayout ... unter setContentView (..) setze.
danke @Matthias
quelle
Wickeln Sie Ihre dialog_custom_layout.xml in RelativeLayout anstatt in ein anderes Layout ein. Das hat bei mir funktioniert.
quelle
Für den Dialog Dies kann für jemanden hilfreich sein. Ich möchte, dass ein Dialog die gesamte Bildschirmbreite einnimmt. viel gesucht, aber nichts nützlich gefunden. Endlich hat das bei mir geklappt:
Nach dem Hinzufügen wird mein Dialogfeld in voller Bildschirmbreite angezeigt.
quelle
Diese Antwort ist eine Problemumgehung für diejenigen, die "Theme.AppCompat.Dialog" oder andere Nachkommen von "Theme.AppCompat.Dialog" wie "Theme.AppCompat.Light.Dialog", "Theme.AppCompat.DayNight.Dialog" usw. verwenden. Ich selbst muss den AppCompat-Dialog verwenden, da ich AppCompatActivity als Erweiterung für alle meine Aktivitäten verwende. Es wird ein Problem geben, bei dem der Dialog auf allen Seiten (oben, rechts, unten und links) aufgefüllt ist, wenn wir die akzeptierte Antwort verwenden.
Fügen Sie diesen Code im Stil Ihrer Aktivität hinzu
Wie Sie vielleicht bemerken, ist das Problem, das das Auffüllen unseres Dialogfelds erzeugt, "android: windowBackground", also mache ich hier den Fensterhintergrund auf null.
quelle
Stellen Sie eine Mindestbreite am obersten Layout ein.
Beispielsweise:
quelle
Matthias 'Antwort ist größtenteils richtig, aber sie füllt immer noch nicht den gesamten Bildschirm aus, da sie auf jeder Seite eine kleine Polsterung aufweist (hervorgehoben von @Holmes). Zusätzlich zu seinem Code können wir dies beheben, indem wir den Theme.Dialog-Stil erweitern und einige Attribute wie dieses hinzufügen.
Dann deklarieren wir einfach Aktivität mit dem Thema
MyDialog
:quelle
Dies wäre hilfreich für jemanden wie mich. Erstellen Sie einen benutzerdefinierten Dialogstil:
Im
AndroidManifest.xml
Dateisatzthema für die gewünschte Aktivität:Das ist alles, keine Notwendigkeit, Methoden programmatisch aufzurufen.
quelle
In Ihrer Manifestdatei, in der unsere Aktivität definiert ist
ohne Aktionsleiste
quelle