【问题标题】:Propagate up/down swipe event from ViewPager2 to parent BottomSheet将向上/向下滑动事件从 ViewPager2 传播到父 BottomSheet
【发布时间】:2021-07-02 12:15:19
【问题描述】:

我有一个 BottomSheetBehavior 视图,其中包含一个 ViewPager2。除了尝试在ViewPager2 上向上/向下滑动BottomSheet 之外,两者都工作得很好并且做他们需要做的事情。 同样,如果手指在ViewPager2 上方或下方,则在BottomSheet 上向上/向下滑动效果很好,除非手指在ViewPager2 上。

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

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

【问题讨论】:

  • 我曾经在父视图和子视图中都覆盖了 onInterceptTouchEvent 和 onTouchEvent,这些子视图具有该行为但无法再访问此代码,但工作顺利,现在我记得看到一些新类但没有尝试那些可能是滚动行为和其他东西

标签: android swipe bottom-sheet android-viewpager2


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多