ViewPager2拖动

问题描述 投票:0回答:1

如何让viewpager2只拖到上一页或下一页?现在可以无限上下拖动了。

vp2.registerOnPageChangeCallback(new ViewPager2.OnPageChangeCallback() { @覆盖 公共无效onPageScrolled(int位置,浮动positionOffset,intpositionOffsetPixels){ super.onPageScrolled(位置,positionOffset,positionOffsetPixels); if(Math.abs(位置-当前位置)>1){ vp2.setUserInputEnabled(假)

}其他{ vp2.setUserInputEnabled(true) } }

setUserInputEnabled 太粗暴了,因为它终止了滑动事件...

android drag
1个回答
0
投票

自从您在 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
}
}
© www.soinside.com 2019 - 2024. All rights reserved.