Android开发小记:命名空间错误导致自定义属性不生效
来源:互联网 发布:阿里云学生特惠 编辑:程序博客网 时间:2024/05/16 02:19
前言
好久没更新博文了,封闭开发一个多月,就问你怕不怕?最近在使用自定义控件的时候发现预览有效果,可是运行起来就不展示,最后才发现自己的布局中的命名空间有问题,导致了控件属性不生效。
命名空间
命名空间:namespace。在XML文件中提供避免元素命名冲突的一种方法。
同时,每个命名空间都是一组特定属性的集合标志。
举个栗子:
Android中常用的命名空间:android,tools。
自定义控件
在自定义的控件过程中,有时会自定义属性方便直接在布局中使用。
使用自定义控件,可以如下:
<tech.michaelx.view.TabIndicator xmlns:tabindicator="http://schemas.android.com/tools" android:id="@+id/tab_indicator" android:layout_width="200dp" android:layout_height="60dp" android:layout_gravity="center_horizontal" android:layout_marginTop="30dp" tabindicator:selected_text_color="#FFFFFF" tabindicator:unselect_text_color="#333333">
利用xmlns:即xml namespace,声明了一个新的命名空间:tabindicator=”http://schemas.android.com/tools”。tabindicator被称作命名空间前缀,用来访问自定义view的自定义属性。AS预览中可以看到相应的效果,可是运行到机器上后,却发现自定义属性没有作用,起初还以为是代码逻辑出了问题,后来才发现,命名空间出了问题,正确的命名空间应该为:
xmlns:tabindicator="http://schemas.android.com/apk/res-auto"
前缀可以任意自定义,后面的链接
却应该注意,这应该是个常量:
"http://schemas.android.com/apk/res-auto"
改对命名空间之后就皆大欢喜了,本来是根据ide提示生成的命名空间,结果却错了,囧
没时间写长篇博文了,做个笔记,万一能帮到和我一样的糊涂蛋呢。。。
阅读全文
1 0
- Android开发小记:命名空间错误导致自定义属性不生效
- Android 自定义View 属性和命名空间
- Android 自定义命名空间
- android 自定义控件(命名空间)attrs的format属性
- Android tools命名空间以及自定义View的属性
- Android 自定义view中的属性,命名空间,以及tools标签
- Android 自定义view中的属性,命名空间,以及tools标签
- Android中XML的命名空间、自定义属性
- Android中XML的命名空间、自定义属性
- 【Android】 XML布局文件中,使用自定义属性不提示和不生效
- android属性 命名空间 笔记
- jQuery命名空间,自定义空间及属性,插件开发全解析
- jQuery命名空间,自定义空间及属性,插件开发全解析
- jQuery命名空间,自定义空间及属性,插件开发全解析
- jQuery命名空间,自定义空间及属性,插件开发全解析
- jQuery命名空间,自定义空间及属性,插件开发全解析
- jQuery命名空间,自定义空间及属性,插件开发全解析
- jQuery命名空间,自定义空间及属性,插件开发全解析
- 暴利链表 钟
- [第六季结尾]14.Javascript中的对象
- Unity笔记(正版全阶段)目录
- Kotlin 基本数据类型
- 链式栈的复习
- Android开发小记:命名空间错误导致自定义属性不生效
- 指针和引用的对比
- centos7+tomcat+cmdbuild安装部署
- On Using Very Large Target Vocabulary for Neural Machine Translation
- 一步一步学Vue(八)
- Python算法性能提升的几种方式
- IT苟蒻知识站
- 初见openssl一些常见的关键词
- hpuoj【1411】QAQ & ORZ 的签到题【水题】