首页 > 解决方案 > 将向上/向下滑动事件从 ViewPager2 传播到父 BottomSheet

问题描述

我有一个BottomSheetBehavior包含ViewPager2. 除了尝试BottomSheetViewPager2. BottomSheet同样,如果手指在 上方或下方,向上/向下滑动效果很好ViewPager2,除非手指在ViewPager2.

我需要了解如何将向上/向下滑动事件通过ViewPager2向下传播到BottomSheet.

代码非常零散,所以在这里展示它会很复杂,而且没有任何意义。我只需要如何传播事件的原理。

标签: androidswipebottom-sheetandroid-viewpager2

解决方案


这是因为RecyclerView默认启用了 ViewPager2 内部的嵌套滚动。要禁用它:

viewPager.children.find { it is RecyclerView }?.let {
        (it as RecyclerView).isNestedScrollingEnabled = false
}

推荐阅读