ANDROID中XML属性xmlns和tools作用
在布局文件中可以看到:
xmlns:android=""
xmlns:tools=""
tools:context=".xxxActivity"
三个属性;
其中xmlns全称xmlnamespace(命名空间)
命名空间的意义:因为xml的格式本身可以自由定义,每个人都可以写一套自己的格式规则,那么问题来了,别人的解析器怎么识别相不同的xml;并且Android自身有一套自己的定义规则,有对应的解析器。其实可以把命名空间当作是这种XML格式的名字,随便起一个不和其它的XML不起冲突的名字就行,而一般大公司的做法是,填上一个网址,对应网址有讲明相应格式的用法,即命名了,又让别人可以查询对应xml使用的格式,所以算是一举两得。
1.xmlns:android=""
这一属性不能去掉。
2.xmlns:tools=""
tools:context=".xxxActivity"
这两上是一起的,可把xmlns:tools=""当作是tools:context=""的命名空间,如果没有xmlns:tools=""
直接使用tools:context=""会提示Erroe parsing XML,unbound prefix(解析出错,未约束的前缀),
意思解析器不知道tools这个前缀是啥意思,因为你没有提供相应的命令空间来提示解析器。
tools:context=”.xxxActivity”作用:
让Layout Editor知道当前布局对应哪一个Activity,来更好的显示预览界面,比如当前使用了一个主题,或者使用了一个ActionBar,就都可以显示出来。如果不添加这个属性,就只会显示布局文件定义的界面。