如何取消ViewPager" snap"调用endFakeDrag()后的动画?

时间:2016-09-26 02:45:03

标签: java android android-viewpager scroller onfling

上下文:我尝试实施flingable VelocityViewPager。投掷动作正常。我喜欢这个页面"快照"在投掷动作后居中。尽管如此,到目前为止我还有一些问题。一个问题是,当您拖动页面超过一定数量时页面不会对齐。我使用this code解决了这个问题,所以这只是针对上下文的。另一个问题如下......

问题:在beginFakeDrag()之后 - > FlingRunnable(投掷动作) - > endFakeDrag(),endFakeDrag()'内部代码"快照"要居中的页面。当我尝试在强制拍摄动作期间再次拍摄时,它会一直等到动画完成后 - 将投掷动作放在队列中。

如何在触地下取消快动作以使其不会延迟投掷动作?

尝试1:触摸时,我尝试使用beginFakeDrag()但它没有取消endFakeDrag()快照动作。

尝试2:我没有调用endFakeDrag(),而是试图在假拖动期间模仿快动,这样我就可以自己实现取消并只调用endFakeDrag(当页面已经居中时。我使用Scroller的startScroll()通过SnapRunnable尝试了这个。

这可能是我最好的选择,但我无法弄清楚要滚动到多少distanceX以使页面居中。我试图查看原始的ViewPager.class,但算法使我感到困惑,似乎依赖于VelocityViewPager.class无法访问的更多内部代码。

0 个答案:

没有答案