一、使用view内部属性mScrollX, mScrollY
这两个属性用于记录滚动位置,不同于x,y
二、scrollTo,scrollBy仅在视图的父视图有效
猜测原因:
1. 仅重绘子视图所在区域,但是子视图位置已经发生改变
2. 只有父视图刷新其子视图所有区域才行
3. Android文档说明, 文档地址Scrolling
The framework provides basic support for views that wish to internally scroll their content. This includes keeping track of the X and Y scroll offset as well as mechanisms for drawing scrollbars. See scrollBy(int, int), scrollTo(int, int), and awakenScrollBars() for more details.
框架对于期望滚动其内部内容的视图提供基本支持。包括跟踪X,Y轴的滚动偏移,以及用于绘制scrollbar滚动条。 可以通过查看scrollBy, scrollTo,awakenScrollBars查看更多描述.
三、疑问
从代码角度,执行流程角度分析为什么其父控件调用这两个方法,其子视图才会滚动。
** 自己写一个scrollTo与scrollBy来说明原理。