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



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




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值