Android viewpager滑动与recyclerview滚动冲突

时间:2019-01-19 06:59:28

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

我在viewpager上有三个片段,所有三个片段上都有回收站视图。但是,在滑动回收器视图时,其滚动与之冲突。因此,只有在第3次或第4次滑动后才可以擦除片段,或者有时我必须从屏幕的开始到末尾滑动才可以对片段进行滑动。我想要一个顺滑的用户体验。有人可以帮我解决这个问题。谢谢!

1 个答案:

答案 0 :(得分:0)

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

例如,如果要使回收者视图仅垂直滚动,则应覆盖onInterceptTouchEvent(ev: MotionEvent)类中的ViewPager并检测滚动类型。

它看起来像这样:

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

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

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