您的位置:首页 > 其它

ViewPager调用SetCurrentItem()方法,跨页面跳转时闪屏的问题

2017-04-28 12:01 555 查看
场景:

ViewPager左右滑动需要滑动动画,但在调用setCurrentItem()跨页面滑动时不需要显示滑动动画,要平滑静态滑动

解决:

重写ViewPager的setCurrentItem方法,当跨页面滑动时,设置duration(scroller.setmDuration(0);)

private FixedSpeedScroller scroller;
try {
Field field = ViewPager.class.getDeclaredField("mScroller");
field.setAccessible(true);
scroller = new FixedSpeedScroller(getContext(),
new DecelerateInterpolator());
field.set(this, scroller);
scroller.setmDuration(300);
} catch (Exception e) {
e.printStackTrace();
}


@Override
public void setCurrentItem(int item) {
if (Math.abs(getCurrentItem() - item) > 1) {
scroller.setmDuration(0);
super.setCurrentItem(item);
scroller.setmDuration(300);
} else {
scroller.setmDuration(300);
super.setCurrentItem(item);
}
}


PS:

来源:http://www.open-open.com/lib/view/open1476773958602.html

setCurrentItem(position,false),无动画,但界面显示异常,待解
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: