zoukankan      html  css  js  c++  java
  • 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 命名空间。

    一讲到命名空间,我想很多人会联想到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

  • 相关阅读:
    判断数据库内容,在页面显示自定义数据case when
    其他窗体赋值给comboBox实现值的回显,并使赋的值处于选中状态(根据text获取selectedindex)
    DataGridView的按钮列的点击事件
    表单中各种input汇总
    块元素、内敛元素、行内块元素特点、相互转换、取消默认效果
    内联元素,取消间隙和默认效果
    margin-top塌陷
    linux下安装 配置 redis数据库
    redis数据库各种数据类型的增删改查命令
    python与mongodb的交互 增删改差
  • 原文地址:https://www.cnblogs.com/XIEjm/p/10498219.html
Copyright © 2011-2022 走看看