猿问

在Android中Viewpager控制器的速度减慢

在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();}

它没有改变什么,但没有例外发生?


幕布斯7119047
浏览 613回答 3
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) {     }}
随时随地看视频慕课网APP

相关分类

Android
我要回答