Juh*_*ani 13 android android-viewpager
当您使用setPageMargin为ViewPager设置负边距时,页面将变得小于ViewPager的整个宽度.这样做的副作用是用户可以使用一个长手势来多次更改活动页面.
有没有办法阻止单个手势多次更改页面?
我试图阻止动作事件到达寻呼机,但你必须让MotionEvent.ACTION_UP通过或者寻呼机无法正常工作.up还会触发ViewPager中基于速度的计算,并在触发时导致额外的页面更改.
我需要重置拖动的速度,或者我需要以某种方式阻止其他页面更改.
我已经使用了这个问题的答案中描述的方法来停止滚动但是描述的ACTION_UP问题阻止我完成它. 是否可以禁用ViewPager上的滚动
有任何想法吗?
我不知道你到底想在这里实现什么,但是使用PagerAdapter上的getPageWidth()来使页面宽度小于 ViewPager 宽度,而不是使用负边距不是更好吗?
好吧,我想出了一个“hacky”解决方案,包括将源代码从 ViewPager 复制到您的项目中并修改一点performDrag(),这样它就不会拖动超过一个页面。
这个 Hack 需要一些假设:
您可以检查示例项目,以及ViewPager修改差异
这不是一个漂亮或优雅的解决方案,但它有效,我最终将关闭 3 个月前的同样问题的票,所以经理很高兴:)