我有一个BottomSheetDialogFragment
。但即使是最轻微的向下滑动也会关闭对话框。
我不想使其静态并删除向下滑动以消除行为。我希望能够更改灵敏度,如果向下滑动 x
像素,则关闭
最佳答案
使用BottomSheetBehavior
这将获取您的 BottomSheetDialogFragment View 的行为
var mBehavior: BottomSheetBehavior<*> = BottomSheetBehavior.from([your view reference])
然后你可以这样设置
val dismissOffset: Float = [-1..0] // 0 is the starting position. -1 is hidden. -0.5 is middle
var offset: Float? = null
mBehavior.setBottomSheetCallback(object : BottomSheetCallback() {
override fun onStateChanged(bottomSheet: View, newState: Int) {
if (newState == BottomSheetBehavior.STATE_SETTLING) {
if (offset!! > dismissOffset) {
mBehavior.setState(BottomSheetBehavior.STATE_EXPANDED)
} else {
mBehavior.setState(BottomSheetBehavior.STATE_HIDDEN)
}
}
}
override fun onSlide(bottomSheet: View, slideOffset: Float) {
offset = slideOffset
}
})
关于android - 如何更改 BottomSheetDialog 的关闭行为的敏感度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61592033/