Ответ
Использование не дефолтного конструктора фрагмента (с параметрами) не рекомендуется, потому что Android может пересоздать фрагмент при повороте экрана или восстановлении состояния. В этом случае система вызовет дефолтный конструктор, а переданные параметры потеряются.
Вместо этого используйте setArguments(Bundle) для передачи данных:
class MyFragment : Fragment() {
companion object {
fun newInstance(param: String): MyFragment {
val args = Bundle().apply { putString("key", param) }
return MyFragment().apply { arguments = args }
}
}
}
Так данные сохранятся при пересоздании фрагмента.