Я думаю, причина того, что он не вызывает onAttachFragment
, заключается в том, что DialogFragment
управляет его жизненным циклом, а другие методы переопределяют не так, как нормальные, см. документация .
Если вы просто хотите получить обратный вызов к родительскому фрагменту, вы можете либо переопределить метод onAttach
внутри DialogFragment
и использовать параметр контекста в качестве обратного вызова (привести его), либо иметь открытыйметод внутри вашего DialogFragment
, который устанавливает обратный вызов, который вы бы вызвали после создания этого фрагмента.
onAttach
метод:
override fun onAttach(context: Context?) {
super.onAttach(context)
callback = context as? Callback
}
открытый метод установки обратного вызова:
//parent fragment: after initializing it
childFragment.setCallback(this@ParentFragment)//or pass in other callbacks
//child fragment:
fun setCallback(callback: Callback) {
this.callback = callback
}