xmlns:android="http://schemas.android.com/apk/res/android 这句话的做用

xmlns:android="http://schemas.android.com/apk/res/android
有了这句话,你就能够alt+/做为提示,提示你输入什么,不应输入什么,什么是对的,什么是错的,也能够理解为语法文件。或者语法判断器什么的

运行的时候那些控件的属性都是经过它来识别的,若是上面你写错了,不会有任何问题,可是在运行的时候就会有问题,提示你没有指定宽度等什么。
这个是不用联网的。

 

什么是xmlns

xmlns,它是 XML 文档中的一个概念:英文叫作 XML namespace,中文翻译为 XML 命名空间。android

一讲到命名空间,我想不少人会联想到C++中的namespace和Java中的 packagename,而这二者的做用都是为了解决命名上的冲突(例如类名,接口名等)。app

相似的,XML namespace也是为了解决 XML 中元素和属性命名冲突,由于 XML 中的标签并非预约义的,这一点与 HTML 是有区别的,HTML 中的标签是预约义的,因此咱们会遇到命名冲突的问题。工具

XML 命名空间定义语法为xmlns:namespace-prefix=”namespaceURI”,一共分为三个部分:布局

  • xmlns:声明命名空间的保留字,其实就是XML中元素的一个属性;
  • namespace-prefix:命名空间的前缀,这个前缀与某个命名空间相关联;
  • namespaceURI:命名空间的惟一标识符,通常就是一个URI引用。

 

Android中的xmlns

在Android中,目前咱们碰到的xmlns一共有三种:spa

xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" xmlns:app="http://schemas.android.com/apk/res-auto"
  • android 命名空间android用于 Android 系统定义的一些属性。 
  • app 命名空间app用于咱们应用自定义的一些属性,这个与 Android 自定义属性和系统控件扩展应该有关系,你们能够再继续研究一下。 
  • tools 根据官方定义,tools命名空间用于在 XML 文档记录一些,当应用打包的时候,会把这部分信息给过滤掉,不会增长应用的 size,说直白点,这些属性是为IDE提供相关信息

 

使用到自定义View的xml布局文件

Android 自定义的xmlns其实很简单,语法规则是: xmlns:前缀=http://schemas.android.com/apk/res/你的应用程序包路径..net

通常状况下,咱们引用“apk/res-auto”就让app可以访问res下全部资源的能力,固然若是想让其只能访问某个res资源,只须要引用“包名/apk/res/具体属性文件夹”便可。翻译

 

xmlns:tools的用法

在布局中,任意xml标签下添加代码:code

xmlns:tools="http://schemas.android.com/tools"

以后,咱们便能使用android为咱们提供的tools,先举个开发过程当中的案例:xml

有时候在布局一个xml的过程当中须要查看某个TextView的文字效果,因而指定了android:Text =
“客户们都是笨蛋”;这时,产品上线,结果忘了删除这行代码,数据加载也没有从新设置text内容。blog

这种场面是否是就很尴尬了?使用tools标签就可以避免这样的尴尬,咱们在xml布局中加入tools:text=”客户们都是笨蛋”,预览中就会显示出 客户们都是笨蛋

但实际上,若是运行的话,是看不到这条text的。
除此以外,tools:标签几乎支持全部android:的同名标签,好比tools:src、tools:textSize等,能够本身进行探索。
总之,tools的做用就是可以方便开发者在开发过程当中提早预览xml布局而对以后的运行结果不产生影响,挺方便的一个工具。

 

 参考:

http://www.jianshu.com/p/6fcaffaeffd2

https://blog.csdn.net/Evan123mg/article/details/50906160

https://blog.csdn.net/qq_34773981/article/details/82667425

相关文章
相关标签/搜索