У меня есть BottomSheetDialogFragment, чтобы показать список элементов внутри фрагмента. Каждый элемент списка получил сопоставленное событие клика. Проблема здесь заключается в том, что в большинстве случаев действие щелчка превращается в действие смахивания вниз, а BottomSheetDialogFragment закрывается. У меня нет пользовательских событий для мониторинга событий в моем коде.
dialog?.also {
it.findViewById<View>(R.id.design_bottom_sheet)?.let { bottomSheet ->
bottomSheet.layoutParams?.height = ViewGroup.LayoutParams.MATCH_PARENT
BottomSheetBehavior.from(bottomSheet).state = BottomSheetBehavior.STATE_EXPANDED
BottomSheetBehavior.from(bottomSheet).skipCollapsed = true
}
}
Я должен предотвратить событие закрытия BottomSheetDialogFragment при нажатии, которое превращается в действие смахивания вниз из-за небольшого добавленного дополнительного движения. Это может произойти и должно быть обработано, так как это приложение будет использоваться общими публикациями c.
Может кто-нибудь предложить найти расстояние пролистывания на BottomSheetDialogFragment. Так что, если значение ниже, диалог останется открытым. И если значение высокое из-за намеренного свайп-события, диалоговое окно будет закрыто.