设置ViewPager的切换动画时间
2016-12-09 22:01
351 查看
当我们在直接使用viewPager.setCurrentItem(currentItem);时,ViewPager的切换使用时间是系统给定的,如果我们需要自己设置切换使用时长,系统在ViewPager类中是没有给出方法直接设置的,所以我们需要自己通过其他方法来进行设置。
3.最后在ViewPager切换时,通过FixedSpeedScroller对象设置时间就可以了。
这样我们就改变了ViewPager的切换时间了。
1.创建一个类继承Scroller
package com.viewpager.test; 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); // TODO Auto-generated constructor stub } 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); } /** * 设置切换时间 */ public void setmDuration(int time) { mDuration = time; } /** * 获取切换时间 */ public int getmDuration() { return mDuration; } }
2.在使用ViewPager的Activity中找到ViewPager控件,然后通过反射得到ViewPager的mScroller字段得到Field对象,然后通过Field的set(Object object,Object value)方法设置自己的FixedSpeedScroller对象为新的值。
viewPager = (ViewPager) findViewById(R.id.vp); // 设置ViewPager的Adapter adapter = new MyPagerAdapter(); viewPager.setAdapter(adapter); try { // 通过class文件获取mScroller属性 Field mField = ViewPager.class.getDeclaredField("mScroller"); mField.setAccessible(true); mScroller = new FixedSpeedScroller(viewPager.getContext(),new AccelerateInterpolator()); mField.set(viewPager, mScroller); } catch (Exception e) { e.printStackTrace(); }
3.最后在ViewPager切换时,通过FixedSpeedScroller对象设置时间就可以了。
viewPager.setCurrentItem(currentItem); mScroller.setmDuration(2 * 1000);// 切换时间,毫秒值
这样我们就改变了ViewPager的切换时间了。
相关文章推荐
- 自定义ViewPager轮播,设置切换过渡时间
- 实现Fragment的切换和ViewPager自动循环设置切换时间
- 为viewPager设置切换动画效果
- 解决ViewPager设置切换动画PageTransformer后子页无法触摸的问题
- ViewPager设置切换动画
- ViewPager设置自定义切换动画
- ViewPager设置切换动画不可用
- 修改ViewPager滚动切换的动画时间
- 设置ViewPager的切换动画简单的实现
- Android 给ViewPager设置切换动画
- 千变万化的ViewPager切换动画(一、简单的设置动画)
- Android ViewPager多页面滑动切换以及动画效果
- [转载]Android ViewPager多页面滑动切换以及动画效果
- Android中用ViewPager实现多页面滑动切换及动画效果的实例
- Android ViewPager多页面滑动切换以及动画效果!!!
- ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果
- Android ViewPager多页面滑动切换以及动画效果