第一项目组 道理解析
IOS上的bounce功能给人的感触感染很爽,当一个可以迁移转变的区域被拖到鸿沟时,它容许用户将内容拖过界,甩手后再弹回来,以一种很是棒的体式格式提示了用户鸿沟的存在,是IOS的一大特点。android2.3新增了overscroll功能,听名字就知道应当是bounce功能的翻版,但也许是出于专利方面的推敲,google的默认实现跟IOS有所不合,它只是在list拖到鸿沟处时做了一个发光的动画,小我感觉体验比IOS差远了。并且这个的发光在黑色靠山下固然结果不错,在其它靠山下可就难说了,是以很多人想要关掉它。
日前google上搜刮“android overscroll”,对此结果的先允很多,但关于其具体应用体式格式和实现,则很少涉及,偶有说起,也经常答非所问或貌同实异,反而误导了别人。于是我查阅了android相干源码,并做了一些测试,在此讲讲我的懂得。
起首是overscroll功能本身,在最顶层的View类供给了支撑,可经由过程setOverScrollMode函数把握其呈现前提。但其实View中并没有实现overscroll功能,它仅仅供给了一个帮助函数overScrollBy,该函数按照overScrollMode和内容是否须要迁移转变把握最大迁移转变局限,最后将策画成果传给onOverScrolled实现具体的overscroll功能,但此函数在View类中是全空的。
overscroll功能真正的实现分别在ScrollView、AbsListView、HorizontalScrollView和WebView中各有一份,代码根蒂根基一样。以ScrollView为例,它在处理惩罚笔点移动消息时调用overScr