To powinno być proste zadanie, ale z jakiegoś powodu mogę znaleźć sposób na ustawienie tytułu DialogFragment . (Ustawiam zawartość okna dialogowego za pomocą onCreateView
przeciążenia).
Styl domyślny pozostawia miejsce na tytuł, ale nie mogę znaleźć żadnej metody w DialogFragment
klasie, aby go ustawić.
Tytuł jest w jakiś magiczny sposób ustawiany, gdy onCreateDialog
metoda jest używana do ustawiania zawartości, więc zastanawiam się, czy jest to zgodne z projektem, czy też istnieje specjalna sztuczka, aby ustawić ją podczas używania onCreateView
przeciążenia.
Czy nadpisywanie
onCreateDialog
i ustawianie tytułu bezpośrednio wDialog
pracy? Lubię to:źródło
Kiedyś odpowiedź Jasona działała dla mnie, ale teraz potrzebuje następujących dodatków, aby tytuł był widoczny.
Po pierwsze, w metodzie MyDialogFragment
onCreate()
dodaj:setStyle(DialogFragment.STYLE_NORMAL, R.style.MyDialogFragmentStyle);
Następnie w pliku styles.xml dodaj:
Po godzinach próbowania różnych rzeczy, to jedyna rzecz, która mi się podoba.
Uwaga - może być konieczna zmiana na
Theme.AppCompat.Light.Dialog.Alert
coś innego, aby dopasować styl motywu.źródło
android:windowNoTitle
false
nie było konieczne po przełączeniu naAndroid.Support.V7.App.AppCompatDialogFragment
zAndroid.Support.V4.App.DialogFragment
, ani wystarczające, ponieważ powodowało zduplikowanie tytułów (chociaż zapewniłem, że było ustawiane tylko raz).DialogFragment można przedstawić jako okno dialogowe i jako działanie. Użyj poniższego kodu, który działałby poprawnie w obu przypadkach
źródło
Możesz spojrzeć na oficjalne dokumenty . Sposób, w jaki to zrobiłem, jest taki:
źródło