ViewPager切换动画效果修改

比如我们点击向右按钮,希望左边的view移动过来,有个平移效果,但是用系统默认的ViewPager切换的时候,会一闪而过。这是为什么呢?

因为viewpager外面其实有个scrollview,你可以使用反射的方法,设置他的scroll时间。代码如下。

主要代码:

//第一步:

        LayoutInflater mInflater = (LayoutInflater) context
                    .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            View view = mInflater.from(context).inflate(
                    R.layout.vw_personalcyclingtarget_test, personalFileMain);
            MyCycTargetViewPager mVp = (MyCycTargetViewPager) view
                    .findViewById(R.id.cyctarget_viewpager);

            try {
                // viePager平移动画事件
                Field mField = ViewPager.class.getDeclaredField("mScroller");
                mField.setAccessible(true);
                MyScroller mScroller = new MyScroller(mVp.getContext(),
                        new AccelerateInterpolator());
                mField.set(mVp, mScroller);
            } catch (NoSuchFieldException e) {
                e.printStackTrace();
            } catch (IllegalArgumentException e) {
                e.printStackTrace();
            } catch (IllegalAccessException e) {
                e.printStackTrace();
            }

//第二步:

/**
 * 
 * @desc:ViewPager动画时间
 * @author: pangzf
 * @date: 2014年8月13日 下午6:00:05
 */
public class MyScroller extends Scroller {
    // 设置你需要的平移时间
    private int animTime = 500;

    public MyScroller(Context context) {
        super(context);
    }

    public MyScroller(Context context, Interpolator interpolator) {
        super(context, interpolator);
    }

    @Override
    public void startScroll(int startX, int startY, int dx, int dy, int duration) {
        super.startScroll(startX, startY, dx, dy, animTime);
    }

    @Override
    public void startScroll(int startX, int startY, int dx, int dy) {
        super.startScroll(startX, startY, dx, dy, animTime);
    }

    public void setmDuration(int animTime) {
        this.animTime = animTime;
    }

我们的项目是禁止使用viewpager左右滑动的,禁用左右滑动你可以点连接
文章出处:https://blog.csdn.net/pangzaifei/article/details/70213731
点击向右按钮的效果图:

个人项目txtreader:已经发布google play,http://blog.csdn.net/pangzaifei/article/details/52756777

有需要的可以联系

猜你喜欢

转载自blog.csdn.net/pangzaifei/article/details/38540527