频道栏目
首页 > 资讯 > 其他 > 正文

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

17-05-03        来源:[db:作者]  
收藏   我要投稿

场景:
ViewPager调用SetCurrentItem()方法,跨页面跳转时闪屏的问题。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);
        }
    }
相关TAG标签
上一篇:Android6.0无法使用org.apache.http的解决办法
下一篇:Android Studio下创建java工程
相关文章
图文推荐

关于我们 | 联系我们 | 广告服务 | 投资合作 | 版权申明 | 在线帮助 | 网站地图 | 作品发布 | Vip技术培训 | 举报中心

版权所有: 红黑联盟--致力于做实用的IT技术学习网站