Android View.scrollTo, View.scrollBy控制视图滚动原理

来源:互联网 发布:怎么在淘宝外卖上开店 编辑:程序博客网 时间:2024/04/30 15:42



一、使用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来说明原理。