您的位置:首页 > 其它

ViewPager setCurrentItem 设置滑动速度

2014-07-24 10:39 501 查看
参考:http://hiqianjin.com/blog/474

当我们用一个按钮来控制ViewPager 切换到下一页的时候:

mViewPager.setCurrentItem(++currPositon),该方法会让ViewPager快速闪到下一页,用户体验极差。

1、这时自定义一个Scroller类(控制ViewPager的滑动速度)是一个很好的解决办法:

package com.example.july21;

import android.content.Context;
import android.view.animation.Interpolator;
import android.widget.Scroller;

public class FixedSpeedScroller extends Scroller {

private int mDuration = 1000;//这里是定义切换的时长

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

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

public FixedSpeedScroller(Context context, Interpolator interpolator,
boolean flywheel) {
super(context, interpolator, flywheel);
}

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

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

}


2、在ViewPager类中增加对ViewPager初始化的代码(说句废话,该方法要在mViewPager,findViewById后)

import java.lang.reflect.Field;

private void setViewPagerScrollSpeed() {
try {
Field mScroller = null;
mScroller = ViewPager.class.getDeclaredField("mScroller");
mScroller.setAccessible(true);
FixedSpeedScroller scroller = new FixedSpeedScroller(mViewPager.getContext());
mScroller.set(mViewPager, scroller);
} catch (NoSuchFieldException e) {

} catch (IllegalArgumentException e) {

} catch (IllegalAccessException e) {

}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: