如何打开在Kotlin中完全展开的BottomSheetDialogFragment?

时间:2019-02-12 02:14:49

标签: android kotlin bottom-sheet

我可以使用

打开我的BottomSheetDialogFragment
val bottomSheet = BottomSheetFragment()
bottomSheet.show(fragmentManager!!, "BottomSheet")

但是它只能打开以显示其内容的一半-我希望它在打开时可以扩展到屏幕的整个高度而不必向上拖动。

我环顾四周,似乎一种方法是将BottomSheetBehavior状态设置为STATE_EXPANDED,但是我无法在Kotlin中找到解决方法。

任何帮助将不胜感激!

1 个答案:

答案 0 :(得分:2)

您可以通过将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