Это должно быть простой задачей, но по какой-то причине я могу найти способ установить заголовок DialogFragment . (Я устанавливаю содержимое диалога, используя onCreateView
перегрузку).
Стиль по умолчанию оставляет место для заголовка, но я не могу найти какой-либо метод в DialogFragment
классе для его установки.
Заголовок каким-то волшебным образом устанавливается, когда onCreateDialog
метод используется для установки содержимого, так что мне интересно, если это сделано специально, или есть специальный прием для его установки при использовании onCreateView
перегрузки.
Есть ли переопределение
onCreateDialog
и установка заголовка непосредственно наDialog
работу? Как это:источник
Ответ Джейсона раньше работал для меня, но теперь ему нужны следующие дополнения, чтобы показать заголовок.
Во-первых, в методе вашего MyDialogFragment
onCreate()
добавьте:setStyle(DialogFragment.STYLE_NORMAL, R.style.MyDialogFragmentStyle);
Затем в вашем файле styles.xml добавьте:
После нескольких часов пробных попыток, это единственное, что помогло мне.
NB. Вам может потребоваться изменить его
Theme.AppCompat.Light.Dialog.Alert
на другое, чтобы соответствовать стилю вашей темы.источник
android:windowNoTitle
false
не была необходима после переключенияAndroid.Support.V7.App.AppCompatDialogFragment
сAndroid.Support.V4.App.DialogFragment
, и не достаточна, так как это приводило к дублированию заголовков (даже при том, что я гарантировал, что это устанавливалось только один раз).DialogFragment может быть представлен как диалог и как Activity. Используйте код ниже, который будет работать правильно для обоих
источник
Вы можете взглянуть на официальные документы . Вот как я это сделал:
источник