Preference源码包浅析

最近换了一个新业务,做设置,满篇都是Preference的东西,这部分基本属于盲区,快速入门了一下。

网上的使用方法很多,我这里就不赘述了,可以参考这个帖子:http://www.cnblogs.com/tianjian/archive/2012/11/29/2795091.html 个人认为这个说的还是很详细的。

我这里要说的是这个Preference设计的结构。

先来看看这个包里面主要的一些类的关系

这里就是主要的一些类了,为什么我中间只列出来了这么少的成员变量和方法呢,那是因为我主要就针对其中的两条主线进行分析。首先这里有一个组合模式的体现,那是Preference和PreferenceGroup,小伙伴们应该对这个模式不陌生吧,Android里面有一个更出名的是View和ViewGroup。这个图还有一个问题就是,PreferenceFragment不是必须的,没有它结构也是差不多的。

刚刚我说的两条主线,其一就是View的显示。使用这个框架设置视图的起点是addPreferencesFromResource()方法,其实呢,通过源码的堆栈调用可以看出,就是将PreferenceScreen跟listview绑定起来了,在PreferenceScreen里面又将所有的树形Preference的组织结构变成了一个list,这样就相当于用一个ListAdapter来充当ListView的视图容器,每个Preference为其提供item View和item click响应。这就是为什么这个架构中有一个PreferenceGroupAdapter的原因。另外一条主线是Click的响应过程,这个体系会将这个事件从下到上传递,直到做出对应的操作。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值