如何打开BottomSheetDialogFragment在科特林完全展开?

问题描述 投票:1回答:1

我能打开我的BottomSheetDialogFragment与

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

但它只是打开显示其内容的一半 - 我想它在打开屏幕的全高扩展,而无需拖动它。

我环顾四周,似乎一个方法是将BottomSheetBehavior状态设置为STATE_EXPANDED,但我一直没能找到关于如何做到这一点在科特林的解决方案。

任何帮助,将不胜感激!

android kotlin bottom-sheet
1个回答
6
投票

你可以把你的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
© www.soinside.com 2019 - 2024. All rights reserved.