Scroller与computeScroll处理滑动

控件的滑动是通过调用两个方法实现的,一个是滑动到指定的坐标位置(scrollTo),另一个是根据当前的坐标位置 滑动的相对距离(scrollBy)。

通过Scroller和computeScroll可以处理控件的平滑的过度到指定的最终位置。
computeScroll可以参考Scroller计算结果来影响scrollTo,scrollBy,从而使得滑动发生改变。

驱动过程:
1.Scroller.startScroll —> invalidate
2.invalidate —> onDraw —> draw —> computeScroll
3.Scroller.computeScrollOffset —> scrollTo —> invalidate

解释过程:
1.需要传入开始和结束的坐标Scroller.startScroll(l, t, r, b);或者是Scroller.startScroll(l, t, r, b, duration);然后调用invalidate方法刷新。
2.invalidate方法会驱动draw方法,draw方法会驱动computeScroll方法。
3.在computeScroll方法内部需要判断是否已经滑动到Scroller指定的结束位置坐标(判断需要调用Scroller.computeScrollOffset),如果没有,则继续滑动,滑动需要调用scrollTo方法(或是scrollBy方法),scrollTo会驱动invalidate方法。回到第二步循环,直至滑动到指定的结束位置坐标。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值