Android 中style 和theme的描述题目

下面关于Android中定义style和theme的描述正确的是?A B D

  • A 都可以减少重复属性设置

  • B style可以作用在Activity上

  • C Theme类可以继承

  • D 一个TextView的style中定义了textColor属性,TextView本身也设置textColor属性,那么TextView本身定义的优先级较高

解析:

A 不提了

B的解释
官方文档定义如下

  • A style is a collection of properties that specify the look and format for a View or window

  • A theme is a style applied to an entire Activity or application

所以B对
补充一句:style和theme本质上就是同一个东西,xml格式完全相同,只是我用在activity上我就叫他theme,我用在view上我就叫他style。唯一的区别就是style里头控制的各个属性了,某些属性是只有针对Activity才能生效的(你view有标题栏嘛有状态栏有导航栏吗嘛?但是反过来Activity内部却有一个继承自View的Decorview) 。所以style可以作用在activity上,但是theme却不能反过来作用在view上

至于C,出题人所说能不能继承指的是Theme这个类的不可继承,强调的是类为final所以不能继承。而在XML里头使用parent来指明父Theme这种不属于类的继承。 也算是有歧义的题目了,因为不知道“继承”是指类的这种狭义的继承还是后者那种广义的继承。
不妨补充一下XML解析方式,遇到parent之后之后就去parent里头解析,然后如此递归,解析完各级的父XML之后,再回到子XML解析。然后后解析的XML元素覆盖前面解析的同名XML元素,就是模拟了类的继承规则啦

所以也能顺便推出D是对的,因为子覆盖父

猜你喜欢

转载自blog.csdn.net/qunqunstyle99/article/details/89302777