android scroll的小理解

来源:互联网 发布:java代码只执行1次 编辑:程序博客网 时间:2024/05/16 13:05

最近在项目里,需要用到滑动scroll,特别是涉及多个图片联动滚动滑动和带有嵌套Layout的滚动滑动。项目需求显示用gallery或ViewPager都无法满足要求。

所以自定义的view,实现滑动滚动迫在眉睫,特点将scrollBy及scrollTo与scroller小提一把。

1、scrollBy 是将view从当前的位置移偏(相对于原来的点)滑动到到某个点,比如原来的点是(100,10) 那么 scrollBy(20,10) 后为(120,20)

2、scrollBy 是将view从当前的位置滑动到到某个点,比如原来的点是(100,10) 那么 scrollBy(20,10) 后为(20,10)

3、scroller类有个startScroll(startX, startY, dx, dy, duration)方法,代表用外部的scroller滑动滚动器来模拟滚动。用四个参数的方法时duration默认250ms。

      用此方法时,当scroller开始滑动滚动时,可以通过getFinalX获取此scroller相对于原来在x轴移动的偏移量,当把这些偏移量就可以获取到每一次,scroller移动点了哪点,有了这个值,就可以将自定义的view,重新设置layout(l,t,r,b).

     

     另附上scroller类还有个computeScrollOffset()方法,是用于返回告诉用户,此scroller是否滑动完了。当没有滑动完时返回true,滑动完了返回false。那么这个功能有什么应用场景呢?

    比如,需要自定义的view有个动画的效果,一步步的滑动,那么就可以用此方法if判断下,若没有滑完,再用scroller.getCurrX获取此scroller滑动的绝对X轴位置,此时就可以让自定义的view也scrollerTo(scroller.getCurrx,0),再invalidate掉view重新进行if判断,不就可以实现动画的连接的滑动了。


关于layout与mesure,可以参考自定义的view。

http://blog.csdn.net/chenshufei2/article/details/8296902


原创粉丝点击