Добавьте это:
override fun setupDialog(dialog: Dialog?, style: Int) {
super.setupDialog(dialog, style)
dialog?.window?.setFlags(WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE, WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE)
}
( из )
Также добавьте это:
override fun onActivityCreated(savedInstanceState: Bundle?) {
super.onActivityCreated(savedInstanceState)
var viewParent = view
while (viewParent is View) {
viewParent.fitsSystemWindows = false
viewParent.setOnApplyWindowInsetsListener { _, insets -> insets }
viewParent = viewParent.parent as View?
}
}
Что это делает?DialogFragment#onActivityCreated()
вызывает Dialog#setContentView()
, что оборачивает представление Диалога в приватную 'wrapInBottomSheet'.Чтобы установить правильные флаги для этих представлений-оболочек, мы хотим установить флаги после их переноса, например, после super.onActivityCreated ()
Также смотреть этот разговор для получения информации о fitsSystemWindows
и оконных вставках.