Как открыть BottomSheetDialogFragment полностью развернутым в Kotlin? - PullRequest
0 голосов
/ 12 февраля 2019

Я могу открыть свой BottomSheetDialogFragment с помощью

val bottomSheet = BottomSheetFragment()
bottomSheet.show(fragmentManager!!, "BottomSheet")

, но он открывается только для отображения половины его содержимого - я хотел бы, чтобы он расширялся при открытии на всю высоту экрана без необходимости перетаскиванияэто.

Я осмотрелся и, кажется, один из способов - установить состояние BottomSheetBehavior в STATE_EXPANDED, но я не смог найти решение, как это сделать в Kotlin.

Любая помощь будет оценена!

1 Ответ

0 голосов
/ 12 февраля 2019

Вы можете установить состояние BottomSheetBehavior, поместив его внутри onViewCreated вашего BottomSheetDialogFragment.

dialog.setOnShowListener { dialog ->
    val d = dialog as BottomSheetDialog
    val bottomSheet = d.findViewById<View>(R.id.design_bottom_sheet) as FrameLayout
    val bottomSheetBehavior = BottomSheetBehavior.from(bottomSheet)
    bottomSheetBehavior.state = BottomSheetBehavior.STATE_EXPANDED
}

. Вы также можете установить высоту просмотра на высоту вашего диалога, чтобы предотвратитьдиалог застревает на полпути при попытке его закрыть.

bottomSheetBehavior.peekHeight = bottomSheet.height
...