У меня есть простой BottomSheetDialogFragment:

class MyBottomSheetDialog : BottomSheetDialogFragment() {

    companion object {

        private const val SOME_KEY = "some_key"

        fun newInstance(something: Boolean): MyBottomSheetDialog {
            return MyBottomSheetDialog().apply {
                arguments = bundleOf(SOME_KEY to something)
            }
        }
    }
    ...
    ...
}

Что я затем показываю с помощью:

MyBottomSheetDialog.newInstance(false).show(childFragmentManager, "my_dialog")

В чем преимущество этого типичного подхода к простому использованию параметра конструктора и отображению диалогового окна, подобного этому:

class MyBottomSheetDialog(private val something: Boolean) : BottomSheetDialogFragment() {
    ...
    ...
}

MyBottomSheetDialog(false).show(childFragmentManager, "my_dialog")
0
mickp 7 Окт 2020 в 14:56

1 ответ

Лучший ответ

Просто, если ваш класс претерпевает изменения конфигурации, система ищет конструктор по умолчанию для воссоздания класса, то есть без параметров, при этом вы получите Exception.

2
Bhaskar Pasupula 7 Окт 2020 в 12:16