如何让viewpager2只拖到上一页或下一页?现在可以无限上下拖动了。
vp2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { @覆盖 公共无效onPageScrolled(int位置,浮动positionOffset,intpositionOffsetPixels){ super.onPageScrolled(位置,positionOffset,positionOffsetPixels); if(Math.abs(位置-当前位置)>1){ vp2.setUserInputEnabled(假)
}其他{ vp2.setUserInputEnabled(true) } }
setUserInputEnabled 太粗暴了,因为它终止了滑动事件...
自从您在 registeronpagechangecsllback 上崩溃后尝试:
class VerticalViewPager2(context: Context) : ViewPager2(context) {
override fun onInterceptTouchEvent(event: MotionEvent?): Boolean {
// Swap x and y to enable vertical swiping
val swappedEvent = MotionEvent.obtain(event)
swappedEvent.setLocation(event?.y ?: 0F, event?.x ?: 0F)
val handled = super.onInterceptTouchEvent(swappedEvent)
swappedEvent.recycle()
return handled
}
override fun onTouchEvent(event: MotionEvent?): Boolean {
// Swap x and y to enable vertical swiping
val swappedEvent = MotionEvent.obtain(event)
swappedEvent.setLocation(event?.y ?: 0F, event?.x ?: 0F)
val handled = super.onTouchEvent(swappedEvent)
swappedEvent.recycle()
return handled
}
}