位置: - 正文

关于android 控件的默认属性问题(android的控件有哪些)

编辑:rootadmin

推荐整理分享关于android 控件的默认属性问题(android的控件有哪些),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:android中有许多控件,这些控件无一例外的都继承自,android的控件,android常用控件有哪些,android控件大全及用法,android按钮控件,android控件大全及用法,android控件大全及用法,android控件大全及用法,内容如对您有帮助,希望把文章链接给更多的朋友!

每个控件都有很多属性 而对于一些属性会有其默认&#; 而这些默认&#;是哪里来的?

我们会想到style或者theme 可往往我们使用TextView或者一些常用的控件的时候并没有声明 style属性 或者theme属性啊

下面以最常用的TextView来进行分析

我们知道 开发中缩写的xml 布局文件 最后都会被解析成为一个对象

势必会调用构造方法来创建对象

下面我们来看看TextView的构造方法

TextView 共有3个构造方法 android提供的控件 都会有3个构造方法

第一个构造方法 需要我们传入一个Context对象 一般用于在代码中创建对象

而第二三个构造方法 则是在xml解析成对象时调用

关于android 控件的默认属性问题(android的控件有哪些)

当控件没有指定style时调用第二个构造方法

指定了style时调用第三个

对于TextView 我们一般不指定style 此时就会调用第二个构造方法

可以看到这里调用了第三个构造方法

分析一下参数:

context 是上下文环境 由系统提供

attrs 是解析xml文件中 控件的属性(id,layout_height等)得来的 可以视为一个容器

defStyle 是第二个构造函数传进来的

com.android.internal.R.attr.textViewStyle

可以看出这是一个id引用对象 在系统attr.xml文件中定义

由此可知当我们没有为控件指定style时 会使用一个默认style

那么这个默认style从哪来的啊 我们也并没有为这个textViewStyle设定&#;啊 ?

答案是 在activity的theme中指定了textViewStyle

定义在了Theme中 而Theme是所有theme的基类 所以无论activity 的theme是什么 都可以找到textViewStyle

@android:style/Widget.TextView

这个表示引用系统style资源Widget.TextView

本文链接地址:https://www.jiuchutong.com/biancheng/386800.html 转载请保留说明!
下一篇链接:https://www.jiuchutong.com/biancheng/386801.html
免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

鄂ICP备2023003026号

友情链接: 武汉网站建设 电脑维修 湖南楚通运网络