在Android中Viewpager控制器的速度减慢用android中的viewpager适配器有没有办法减慢滚动速度?你知道,我一直在看这段代码。我无法弄清楚我错了什么。try{
Field mScroller = mPager.getClass().getDeclaredField("mScroller");
mScroller.setAccessible(true);
Scroller scroll = new Scroller(cxt);
Field scrollDuration = scroll.getClass().getDeclaredField("mDuration");
scrollDuration.setAccessible(true);
scrollDuration.set(scroll, 1000);
mScroller.set(mPager, scroll);}catch (Exception e){
Toast.makeText(cxt, "something happened", Toast.LENGTH_LONG).show();}它没有改变什么,但没有例外发生?
3 回答
![?](http://img1.sycdn.imooc.com/545845b40001de9902200220-100-100.jpg)
偶然的你
TA贡献1841条经验 获得超3个赞
基于已接受的解决方案,我创建了kotlin类,其中包含视图寻呼机的扩展。请享用!:)
class ViewPageScroller : Scroller { var fixedDuration = 1500 //time to scroll in milliseconds constructor(context: Context) : super(context) constructor(context: Context, interpolator: Interpolator) : super(context, interpolator) constructor(context: Context, interpolator: Interpolator, flywheel: Boolean) : super(context, interpolator, flywheel) override fun startScroll(startX: Int, startY: Int, dx: Int, dy: Int, duration: Int) { // Ignore received duration, use fixed one instead super.startScroll(startX, startY, dx, dy, fixedDuration) } override fun startScroll(startX: Int, startY: Int, dx: Int, dy: Int) { // Ignore received duration, use fixed one instead super.startScroll(startX, startY, dx, dy, fixedDuration) }}fun ViewPager.setViewPageScroller(viewPageScroller: ViewPageScroller) { try { val mScroller: Field = ViewPager::class.java.getDeclaredField("mScroller") mScroller.isAccessible = true mScroller.set(this, viewPageScroller) } catch (e: NoSuchFieldException) { } catch (e: IllegalArgumentException) { } catch (e: IllegalAccessException) { }}
- 3 回答
- 0 关注
- 612 浏览
添加回答
举报
0/150
提交
取消