我在viewpager上有三个片段,所有三个片段上都有回收站视图。但是,在滑动回收器视图时,其滚动与之冲突。因此,只有在第3次或第4次滑动后才可以擦除片段,或者有时我必须从屏幕的开始到末尾滑动才可以对片段进行滑动。我想要一个顺滑的用户体验。有人可以帮我解决这个问题。谢谢!
答案 0 :(得分:0)
ViewGroup
类具有一个称为onInterceptTouchEvent(ev: MotionEvent)
的方法,该方法返回Boolean
的值。如果您希望视图“窃取”触摸事件,则应返回true和false。
例如,如果要使回收者视图仅垂直滚动,则应覆盖onInterceptTouchEvent(ev: MotionEvent)
类中的ViewPager
并检测滚动类型。
它看起来像这样:
class MyViewPager {
override fun onInterceptTouchEvent(ev: MotionEvent): Boolean =
!isVerticalScroll()
}
方法isVerticalScroll()
应该由您创建并返回当前滚动方向。
因此,当您水平滑动时,您将到达下一个片段。同时,您的回收站视图将垂直滚动,并且不会发生冲突。