为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

幕布斯7119047 2019-08-24 16:51:02
在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 回答

?
偶然的你

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) {
    }}


查看完整回答
反对 回复 2019-08-24
  • 3 回答
  • 0 关注
  • 566 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信