В чем разница между BottomSheetDialog и BottomSheetDialogFragment

«В чем разница между BottomSheetDialog и BottomSheetDialogFragment» — вопрос из категории Android компоненты, который задают на 23% собеседований Android Разработчик. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

BottomSheetDialog — это стандартный диалог с нижним листом, расширяющий BottomSheetDialog. Прост в использовании, но не поддерживает жизненный цикл фрагментов.

BottomSheetDialogFragment наследуется от DialogFragment и предоставляет все преимущества фрагментов: управление жизненным циклом, сохранение состояния, интеграцию с ViewModel.

Пример BottomSheetDialogFragment:

class MyBottomSheet : BottomSheetDialogFragment() {
    override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View {
        return inflater.inflate(R.layout.bottom_sheet_layout, container, false)
    }
}
// Показ:
MyBottomSheet().show(parentFragmentManager, "TAG")

Используй BottomSheetDialog для простых UI, BottomSheetDialogFragment — для сложных сценариев с жизненным циклом.