我正在使用v4 ViewPager并在下面的链接中能够使用插值器设置滚动速度和滚动动画。当ViewPager从右向左滚动时,LinearInterpolator工作不正常
Slowing speed of Viewpager controller in android
当construtor问这样
private void setScroller() {
try {
Field mScroller;
mScroller = ViewPager.class.getDeclaredField("mScroller");
mScroller.setAccessible(true);
FixedSpeedScroller scroller =
new FixedSpeedScroller(this.getContext(), new LinearInterpolator());
mScroller.set(this, scroller);
} catch (NoSuchFieldException e) {
} catch (IllegalArgumentException e) {
} catch (IllegalAccessException e) {
}
}
现在,当我在我的viewpages的意见多页我用线性内插。在它下面我添加了由点组成的寻呼机 。
O O O O O O O
按一个圆点用smoothScrolling设置当前页面。 使用触摸事件我能够得到我需要显示的正确页码。 知道这一点后,我称这种方法有一个平滑的滚动。
public void snapToPage(int whichPage) {
int numperOfSwapsRequired = whichPage - getCurrentPageIndex();
mScrollingDuration *= numperOfSwapsRequired;
if(numperOfSwapsRequired == 0) return;
if(numperOfSwapsRequired > 0) {
for(int i = 0; i<numperOfSwapsRequired; i++){
setCurrentItem(getCurrentItem()+1, true);
}
} else {
for(int i = 0; i>numperOfSwapsRequired; i--){
setCurrentItem(getCurrentItem()-1, true);
}
}
mScrollingDuration = 300;
}
现在一切正常。但是,只有当我选择一个点,这是正确的选定的网页点。它适合使用线性动画进行滚动。
但是,当我选择离开选定页面点的点。它不滚动。它只是直接跳转到没有滚动动画的页面。
所以我很困惑如何解决这个问题。这是与插值器还是滚轮相关的。
任何帮助,将不胜感激。
感谢
说明太多看..可以分散掉很好的答案。我知道:) – Javanator
尝试设置'新的AccelerateInterpolator()',看看问题是否仍然存在。 – Carnal
@Carnal对不起没有影响.. – Javanator