怎样控制viewpager的滑动速度
2016-09-22 13:47
225 查看
viewPager setAdpater 后调用
setSliderTransformDuration(900); 就可以了
public void setSliderTransformDuration(int duration) {
try {
Field mScroller = ViewPager.class.getDeclaredField("mScroller");
mScroller.setAccessible(true);
FixedSpeedScroller scroller = new FixedSpeedScroller(getActivity(), null, duration);
mScroller.set(vp_adverse, scroller);
} catch (Exception e) {
e.printStackTrace();
}
}
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, int duration) {
this(context, interpolator);
mDuration = duration;
}
@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);
}
}
viewPager setAdpater 后调用
setSliderTransformDuration(900); 就可以了
public void setSliderTransformDuration(int duration) {
try {
Field mScroller = ViewPager.class.getDeclaredField("mScroller");
mScroller.setAccessible(true);
FixedSpeedScroller scroller = new FixedSpeedScroller(getActivity(), null, duration);
mScroller.set(vp_adverse, scroller);
} catch (Exception e) {
e.printStackTrace();
}
}
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, int duration) {
this(context, interpolator);
mDuration = duration;
}
@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);
}
}
相关文章推荐
- Android开发模板------ViewPager(三):实现无限循环、可嵌套RecyclerView、可控制滑动速度
- [置顶] viewPager控制滑动速度和时间
- viewPager控制滑动速度和时间
- Android——UI篇:ViewPager轮播图控制滑动速度
- viewPager控制滑动速度和时间:利用反射机制实现
- viewpager广告位滑动速度控制
- ViewPager setCurrentItem 设置滑动速度
- 使用viewPager滑动控制背景图渐变
- 改变viewPager滑动的速度,利用反射完美实现
- 改变ViewPager滑动速度
- Android 顶部轮播 JazzyViewPager 改变滑动速度
- Viewpager设置滑动速率以及外部按钮控制viewpager的左右切换
- android 设置viewpager滑动速度
- ViewPager控制滑动问题
- 怎么设置viewpager在使用setCurrentItem的滑动速度
- Android ViewPager动态向前向后加载数据,自定义viewPager滑动速度
- 控制ViewPager的切换速度
- Viewpager自动轮播,可修改滑动速度
- ViewPager切换滑动速度修改
- ViewPager切换滑动速度修改