解释得最清楚的一篇:从使用角度理解android中的them和style

Google的官方文档中关于theme和style说明还不够详细,特补充以下:

1.Style和Theme都是属性集合,他们的实现原理是一致的,差别在于用途的不同;

2.Style只包含某个控件的属性值,例如width、height、backcolor等等,仅给控件使用来填充自身属性的,所以Style中的属性,都应能被关联控件识别,不属于关联控件属性的不应改定义Style中,例如TextView的Style中,不应该出现一个“ABC”这样的属性;

3.Theme则是单纯的属性值集合,相当于一个数据库,跟使用者无关,里面放置什么数据不做限制,仅供使用者共享引用这些属性。例如某控件属性值可以通过“?attr/abc”来引用Theme中的"abc"属性值;

4.Style的有效范围仅限于单个控件;

5.Theme的有效范围覆盖使用者以及子控件(全局型数据库);

6.APP的Theme中包含各控件的默认Style引用,这样控件即使没有显式地指明Style,也会使用APP Theme中的Style;

7.控件额外显式地指定Style,则指定Style中包含的属性会覆盖APP Theme指定的默认Style属性。例如xml中写了“style=@style/abc”,则“abc”style中的属性会覆盖APP Theme中的相关属性。

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值