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

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

什么是xmlns

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

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

类似的,XML namespace也是为了解决 XML 中元素和属性命名冲突,因为 XML 中的标签并不是预定义的,这一点与 HTML 是有区别的,HTML 中的标签是预定义的,所以我们会遇到命名冲突的问题。

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

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

Android中的xmlns

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

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/你的应用程序包路径.

一般情况下,我们引用“apk/res-auto”就让app能够访问res下所有资源的能力,当然如果想让其只能访问某个res资源,只需要引用“包名/apk/res/具体属性文件夹”即可。

xmlns:tools的用法

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

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

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

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

这种场面是不是就很尴尬了?使用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

xmlns:android="http://schemas.android.com/apk/res/android 这句话的作用的更多相关文章

  1. xmlns:android="http://schemas.android.com/apk/res/android的作用是

    xmlns:android="http://schemas.android.com/apk/res/android的作用是 这个是xml的命名空间,有了他,你就可以alt+/作为提示,提示你 ...

  2. android 布局文件中xmlns:android="http://schemas.android.com/apk/res/android"

    http://blog.163.com/benben_long/blog/static/199458243201411394624170/ xmlns:android="http://sch ...

  3. 添加xmlns:android="http://schemas.android.com/apk/res/android"的意思

    http://www.cnblogs.com/lovely/archive/2013/01/17/2865192.html xmlns:android="http://schemas.and ...

  4. xmlns:android="http://schemas.android.com/apk/res/android" 是什么意思?

    声明xml命名空间.xmlns意思为“xml namespace”.冒号后面是给这个引用起的别名.schemas是xml文档的两种约束文件其中的一种,规定了xml中有哪些元素(标签).元素有哪些属性及 ...

  5. 导入项目后,http://schemas.android.com/apk/res/android报错

    1.复制出现红色字体的路径 2.File - Settings - Language & Frameworks - schemas and DtDs - 粘贴显红路径

  6. Unity编译Android的原理解析和apk打包分析

    作者介绍:张坤 最近由于想在Scene的脚本组件中,调用Android的Activity的相关接口,就需要弄明白Scene和Activity的实际对应关系,并对Unity调用Android的部分原理进 ...

  7. Android 图片Bitmap,drawable,res资源图片之间转换

    一.知识介绍 ①res资源图片是放在项目res文件下的资源图片 ②BitMap位图,一般文件后缀为BMP,需要编码器编码,如RGB565,RGB8888等.一种逐像素的显示对象,其执行效率高,但缺点也 ...

  8. Android为TV端助力 apk静默安装

    转载请注明出处:http://blog.csdn.net/guolin_blog/article/details/47803149 之前有很多朋友都问过我,在Android系统中怎样才能实现静默安装呢 ...

  9. 【Android自学日记】【转】Android Fragment 真正的完全解析(下)

    上篇博客中已经介绍了Fragment产生原因,以及一些基本的用法和各种API,如果你还不了解,请看:Android Fragment 真正的完全解析(上). 本篇将介绍上篇博客提到的:如何管理Frag ...

随机推荐

  1. PHP0022:PHP SESSION 设置修改删除

  2. Nginx-4.Nginx如何处理请求

    原文 基于server_name 的虚拟站点 Nginx首先需要确定使用哪个server来处理请求.举个简单的例子,有下面几个server 第一个,监听80端口,为org站点 server { lis ...

  3. python3-cookbook笔记:第七章 函数

    python3-cookbook中每个小节以问题.解决方案和讨论三个部分探讨了Python3在某类问题中的最优解决方式,或者说是探讨Python3本身的数据结构.函数.类等特性在某类问题上如何更好地使 ...

  4. Java中Thread方法启动线程

    public class ThreadTest extends Thread {  private int count = 10; @Override public void run() { //重写 ...

  5. jQuery---链式编程

    链式编程 设置性操作:可以链式编程 获取性操作,不能链式,因为获取性操作,数值,字符串,返回值是不是一个jq对象.   $(function () { //设置性操作:可以链式编程 //获取性操作,不 ...

  6. c#中for与foreach的使用

    for循环示例: static void Main(string[] args) { string[] s = new string[] { "a,b,c,d,e,f,g" }; ...

  7. [大数据技术]Kettle报OPTION SQL_SELECT_LIMIT=DEFAULT错误的解决办法

    百度得到的解决方式都是说mysql通过jdbc链接的时候会进行测试’SET OPTION SQL_SELECT_LIMIT=DEFAULT’,但是5.6以后的版本弃用了set的方式. 我用的MySQL ...

  8. TC SRM556 OldBridges

    题意 有一个包含\(n\)个点的图,点的编号分别为\(0\)到\(n-1\).有若干双向边连接两个点,有些边可以经过无限次,有些边最多只能经过(双向)两次.Alice计划从\(a1\)到\(a2\)进 ...

  9. 字符串相等 impossible 1480

    题目描述 两个长度不超过80的字符串,串中包括大写.小写和空格字符,去掉空格并忽略大小写后,判断两个字符串是否相等. 输入描述 第1行输入是测试数据的组数n,每组测试数据占两行,第1行是第一个字符串s ...

  10. MVC开发之Razor的使用

    一.运用布局和视图起始文件 布局的使用,可以简化视图,允许用户创建能够运用于多个视图的通用HTML,并使得维护更加容易.下面是一个简单的例子: 域模型类: public class Product { ...