Dies sollte eine einfache Aufgabe sein, aber aus irgendeinem Grund kann ich einen Weg finden, den Titel eines DialogFragments festzulegen . (Ich stelle den Dialoginhalt mit onCreateView
Überladung ein).
Der Standardstil lässt einen Platz für den Titel, aber ich kann keine Methode für die DialogFragment
Klasse finden, um ihn festzulegen.
Der Titel wird irgendwie magisch festgelegt, wenn die onCreateDialog
Methode zum Festlegen des Inhalts verwendet wird. Ich frage mich daher, ob dies beabsichtigt ist oder ob es einen speziellen Trick gibt, um ihn bei Verwendung der onCreateView
Überladung festzulegen.
Überschreibt
onCreateDialog
und setzt der Titel direkt auf derDialog
Arbeit? So was:quelle
Jasons Antwort hat früher für mich funktioniert, aber jetzt sind die folgenden Ergänzungen erforderlich, damit der Titel angezeigt wird.
Fügen Sie zunächst in der MyDialogFragment-
onCreate()
Methode Folgendes hinzu:setStyle(DialogFragment.STYLE_NORMAL, R.style.MyDialogFragmentStyle);
Fügen Sie dann in Ihrer Datei styles.xml Folgendes hinzu:
Nach stundenlangem Ausprobieren ist dies der einzige, der den Trick für mich getan hat.
NB - Möglicherweise müssen Sie das
Theme.AppCompat.Light.Dialog.Alert
in etwas anderes ändern , um es an den Stil Ihres Themas anzupassen.quelle
android:windowNoTitle
false
war nach dem Wechsel zuAndroid.Support.V7.App.AppCompatDialogFragment
von nicht erforderlichAndroid.Support.V4.App.DialogFragment
und auch nicht ausreichend, da sie zu doppelten Titeln führte (obwohl ich sichergestellt habe, dass sie nur einmal festgelegt wurde).DialogFragment kann als Dialog und als Aktivität dargestellt werden. Verwenden Sie den folgenden Code, der für beide ordnungsgemäß funktioniert
quelle
Sie können sich die offiziellen Dokumente ansehen . So habe ich es gemacht:
quelle