哈哈,不用解释了吧,这下相信你可以将前面基础使用和源码分析几部分完全串起来理解了吧。
通过上面分析可以知道Preference其实不是View,但是其内部创建管理了一个View(ListView的item,被Adapter的getView通过Preference.getView方法获得显示)。
可以看出来,上面我们分析Preference的onCreateView、getView、onBindView这几个方法其实是整个Preference组件显示等的核心方法,所以正如系统提供的Preference的各种实用子类一样,当我们想自定义Preference的时候完全可以重写这些方法来得到自己的各种自定义View,这样就完美的解决了代码的扩展性,我们不用去修改ListAdapter的实现就能实现自定义的Preference,所以说可见Google的工程师在设计Preference结构时是多么的牛叉,不得不膜拜。
题外话:其实这篇文章是受我一个朋友邀请帮忙写的。还记得去年年初我在上家公司(做Android盒子)负责修改一个项目的Settings源码,添加一个屏幕缩放功能在Settings里面。后来做好以后维护转手给了别人,当时别人是个新手,各种问。所以落下后遗症,于是乎就在邀请之下打算写了这一系列两篇文章,以帮助快速上手原生Settings的修改。
其实没啥总结的,还记得前段时间在网上看见有人吐槽Preference是google设计的一个失败品,一点也不好用啥的。其实我想说Preference的设计还是不错的,是值得借鉴的,随便举个例子如下:
在布局设计上可以保持统一预留差异区域供自定义动态插入,达到复用的目的。
在实现listView各个item不同的Adapter的getView方法时不用像传统那样if-else或者switch操作,而是预留一个基类用于实现回调,这样更加灵活。
其他的慢慢体会就行了。
所以说Preference的设计还是非常牛逼灵活的,对那些在网上扯蛋不好用的人说No!!!
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-49639-13.html
么么哒
南方黑芝麻糊的包装密封的很好
谢谢了