【问题标题】:Android viewpager swipe conflicts with recyclerview scrollAndroid viewpager 滑动与 recyclerview 滚动冲突
【发布时间】:2019-01-19 06:59:28
【问题描述】:

我在 viewpager 上有三个片段,三个片段都有回收者视图。但是在滑动回收器视图的滚动时与之发生冲突。因此,只有在第 3 次或第 4 次滑动之后,片段才会被滑动,或者有时我必须从屏幕的开头滑动到结尾,然后片段才会被滑动。我想要一个流畅的刷卡用户体验。有人可以帮我解决这个问题。谢谢!

【问题讨论】:

    标签: android android-recyclerview android-viewpager swipe conflict


    【解决方案1】:

    ViewGroup 类有一个名为onInterceptTouchEvent(ev: MotionEvent) 的方法,它返回Boolean 值。如果您希望您的视图“窃取”触摸事件,则应返回 true 和 false 否则。

    例如,如果您希望仅垂直滚动回收站视图,则应在 ViewPager 类中覆盖 onInterceptTouchEvent(ev: MotionEvent) 并检测滚动类型。

    看起来像这样:

    class MyViewPager {
        override fun onInterceptTouchEvent(ev: MotionEvent): Boolean = 
           !isVerticalScroll()
    }
    

    方法isVerticalScroll()应该由你创建并返回当前滚动方向。

    因此,当您水平滑动时,您将到达下一个片段。同时你的回收站视图会垂直滚动,不会发生冲突。

    【讨论】:

    猜你喜欢
    • 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
    相关资源
    最近更新 更多