ViewPager切换动画效果改动

Posted yjbjingcha

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ViewPager切换动画效果改动相关的知识,希望对你有一定的参考价值。

比方我们点击向右button,希望左边的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左右滑动的,禁用左右滑动你能够点连接

点击向右button的效果图:

技术分享


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

有须要的能够联系









以上是关于ViewPager切换动画效果改动的主要内容,如果未能解决你的问题,请参考以下文章

ViewPager开关没有显示片段之间

Android实现ViewPager视差动画效果及背景渐变过渡

Android:将“ViewPager”动画从片段更改为片段

在ViewPager上,在onPageSelected上的片段上启动动画

android ViewPager实现 跑马灯切换图片+多种切换动画

android ViewPager+fragment切换动画实现