Android 自定义Viewpager滑动速度
2014-01-11 10:29
567 查看
由于Viewpager的滑动速度是固定的,所以很蛋疼。看了老外的文章可以利用反射机制,修改Viewpager的滑动速度。下面是代码实现:
需要新建个类FixedSpeedScoller继承自scroller类
然后需要在初始化Viewpager的地方,加入以下代码:
setmDuration 可以设定想要的时间,这个时间就是滑动的时间。注意上面的mMainHolder.main_viewpager参数,这个是我的viewpager对象,如果大家要用的话,需要修改成自己的viewpager对象。
需要新建个类FixedSpeedScoller继承自scroller类
import android.content.Context; import android.view.animation.Interpolator; import android.widget.Scroller; /** * FixedSpeedScroller for controlling sliding animation speed. It uses the java * reflection mechanism. * * @version 1.00 2014.1.6 * @author Huang.xin gkx100120 * */ public class FixedSpeedScroller extends Scroller { private int mDuration = 1500; // default time is 1500ms public FixedSpeedScroller(Context context) { super(context); } public FixedSpeedScroller(Context context, Interpolator interpolator) { super(context, interpolator); } @Override public void startScroll(int startX, int startY, int dx, int dy, int duration) { // Ignore received duration, use fixed one instead super.startScroll(startX, startY, dx, dy, mDuration); } @Override public void startScroll(int startX, int startY, int dx, int dy) { // Ignore received duration, use fixed one instead super.startScroll(startX, startY, dx, dy, mDuration); } /** * set animation time * * @param time */ public void setmDuration(int time) { mDuration = time; } /** * get current animation time * * @return */ public int getmDuration() { return mDuration; } }
然后需要在初始化Viewpager的地方,加入以下代码:
FixedSpeedScroller mScroller = null; private void controlViewPagerSpeed() { try { Field mField; mField = ViewPager.class.getDeclaredField("mScroller"); mField.setAccessible(true); mScroller = new FixedSpeedScroller( mMainHolder.main_viewpager.getContext(), new AccelerateInterpolator()); mScroller.setmDuration(2000); // 2000ms mField.set(mMainHolder.main_viewpager, mScroller); } catch (Exception e) { e.printStackTrace(); } }
setmDuration 可以设定想要的时间,这个时间就是滑动的时间。注意上面的mMainHolder.main_viewpager参数,这个是我的viewpager对象,如果大家要用的话,需要修改成自己的viewpager对象。
相关文章推荐
- Android 自定义ViewPager的滑动速度
- Android ViewPager动态向前向后加载数据,自定义viewPager滑动速度
- Android开发模板------ViewPager(三):实现无限循环、可嵌套RecyclerView、可控制滑动速度
- Android修改viewpager的滑动速度
- Android自定义ViewPager可控制是否滑动
- android viewPager 实现图片无限循环滑动并带有进度的自定义布局
- Android之ViewPager总结(四)——自定义滑动指示条
- android 设置viewpager滑动速度
- Android 自定义ViewPager的滑动切换页面效果
- Android 自定义的颜色滑动转换ViewPager指示器 ColorTransformIndicator
- Android之自定义(上方标题随ViewPager手势慢慢滑动)
- android 自定义Viewpager 实现静止滑动,并去掉默认的滑动效果
- Android 顶部轮播 JazzyViewPager 改变滑动速度
- Android之自定义(上方标题随ViewPager手势慢慢滑动)
- android中修改Viewpager的滑动速度
- android:关于自定义不能滑动的ViewPager后在使用View加载其所在的的布局时报错:Error inflating class view.NoscrollViewPager
- Android知识-自定义ViewPager禁止左右滑动
- Android自定义组件系列【10】——随ViewPager滑动的导航条
- Android自定义ViewPager实现纵向滑动翻页效果
- Android自定义组件系列【10】——随ViewPager滑动的导航条