1. 程式人生 > >ViewPager切換動畫效果修改

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

有需要的可以聯絡