安卓视图滑动器(View Pager)滑动方向错误

5
我在 Android 视图页面(ACL 的 r4 版本)中发现了一个有趣的 bug。
当您在旧设备或慢设备上快速滑动手指/屏幕边缘时,速度跟踪器会将视图页面向错误的方向扔出去。
我可以在原始 Galaxy Tab、HTC Desire、Nexus One、San Francisco 和 HTC Hero 上重现这个问题。
打开 Google+、市场或其他实现相当大的视图页面的应用。
如果你到达最左侧一页,然后轻轻地把手指移到屏幕右侧,你就可以让视图页面向右跳(与拖动方向相反)。
我需要进一步调查,但这看起来像是速度跟踪器无法跟上较慢设备的速度。当快速从左到右滚动时,这当然会使视图页面跳来跳去。尝试在新市场(3.3+)上从一边到另一边并查看烦人的结果!
通过扩展类修复的任何想法?我认为当很多事情发生时,屏幕可能会提供奇怪的结果,并且可能会错过一些 MotionEvent,因为我发现在较新的设备上几乎不可能复制它。(Nexus S、三星 GSII、Sensation)。
编辑:此问题已在 ACL v6 中解决。
谢谢, Chris
1个回答

5
我认为在 r4 版本中发布的 ViewPager 存在一些问题,这些问题后来已经得到了解决。下一个版本应该很快就会发布。这是一个我们可能随着时间推移而进一步完善的行为,除了即将到来的修复之外。
如果你有兴趣并希望编辑支持库包中包含的源代码,我相信修复的方法是从初始按下事件开始,在 onInterceptTouchEvent 中开始传递 MotionEvent 给 VelocityTracker 而不是仅在触发拦截后在 onTouchEvent 中传递。这样可以给 VelocityTracker 提供更多的数据。或者你可以尝试其他触发方式。

我认为那就是问题所在,我正在考虑在松开时查看速度跟踪器是否会跳动。不幸的是,我目前没有时间去研究它。 - Chris.Jenkins
你有没有关于修复它的时间框架的想法? - Chris.Jenkins
很抱歉,我只能回答“很快了”这样的笼统答案。 :) - adamp
1
adamp,只是想让你知道,这个问题在ACLv6中已经基本解决了。 - Chris.Jenkins

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接