快速滚动条(FastScroll)的定制
2014-11-27
最近项目中因为要做定制快速滚动条功能而研究这块,发现还不是那么好做。
我首先找了网上有类型功能应用,暂时只发现小米自动相册和腾讯的相册管家做了这个功能。然后网上找快速滚动条的定制的相关资料。最后发现只能通过style或者反射机制去改变快速滚动条,而且能改的东西非常有限----只能替换图片。但是小米和腾讯为什么能定制的那么好呢?小米可能是系统层面上改的,那腾讯的总不能也是吧。我只能去下载相册管家的包来反编译了。
经过我反复看他们的代码和资源文件,终于找到了相关的类--ExpandableListView,这个跟系统的ExpandableListView不是同一个,只是单纯的名字相同而已。因为代码混淆过了,我花了很大力气虽然看懂了个大概,却是,没办法完全搞清一些细节性的东西。原理大致是这样:他们并没有去定制FastScroll,而是自己生成了一个叫ScrollPanel的View,然后把这个View画上去,并且对这个View设置了OnTouchListener,对用户的触摸事件处理,拖动的时候不断去滚动ListView,实现类型FastScroll的效果。
由于它们的源代码混淆了很多细节看不了,我只好去参考系统的FastScroll源代码。虽然大致看懂了,但是自己去实现的时候,还是达不到想要的效果。因为时间和精力问题,我现在只能暂时放一放,之后有时间再研究,实在不行我心里也有其他曲线救国的方案可以试试。
今天发现了一个类型功能的库,很不错。记录一下.
Category: Android Tagged: Android View Scroll