scroller本身并不能实现view的滑动,scroller方法中的startscroll中并没有做过多的操作,真正起作用的是startscroll方法下面的的invalidate
方法,因为invalidate方法会引起view的重绘, 而view的draw方法中又会调用computescroll方法,而这个方法是一个空实现,所以如果想要view发生滑动,那么需要重写这个computescroll方法
而mscroller.computescrolloffset返回值是一个boolean,这个值为true时,说明滑动不该终止,若为false说明滑动已经终止,所以需要在为true时做处理。并且这个方法内部会根据当前时间和差值器(即我们人为给他设置的动画效果差值器)来给currX和currY做设置,我们只需要从scroller中拿到currXcurrY即可
设置完后重新调用invalidate
即又开始下一和个时间段的滑动
网友评论