XML 文件中的 Android 命名空间

标签 android xml namespaces

xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
  1. 如果有人可以解释 XML 文件中的命名空间(android、app、tool)的含义是什么?每个词定义不同的库吗?

  2. 据我所知,在 XML 文件中,URI 只是一个字符串,它为命名空间提供了唯一的定义,那么 android 应用程序如何将命名空间连接到库?

  3. 假设我们给了“android”这个词它的默认命名空间,为什么在不同的元素中我们可以选择不同的属性?每个元素( View 项)是否都有其独特的属性?

最佳答案

应用命名空间

app 命名空间并不特定于某个库,但它用于应用中定义的所有属性,无论是通过您的代码还是通过您导入的库,有效地为自定义创建了一个全局命名空间属性 - 即 android 系统未定义的属性。

安卓命名空间

appcompat-v7 库使用镜像 android: 命名空间的自定义属性来支持以前版本的 android。

工具命名空间

tools命名空间是Android tools特别认可的命名空间,所以你在tools-namespace中的 View 元素上定义的所有属性都会在应用打包时自动剥离,没有运行时开销。

引用this回答。

简而言之:

android:text --> 运行应用程序时你会看到什么。

tools:text --> 你只会在预览窗口中看到的内容(当你需要设计布局,但不会在应用程序中看到布局时)。

关于XML 文件中的 Android 命名空间,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39914331/

相关文章:

mysql - 条件 Where 子句备用

c# - 将 XML 反序列化为返回空值的 C# 对象

xml - 对 XML 中的列表使用容器元素有什么好处?

android - 其他包中的复合控件

javascript - 理解 javascript 全局命名空间和闭包

android - 在 RelativeLayout 中获取 subview

android - 使用 RxJava 2 合并 Android Room 查询的结果

android - 在 Android M 上,如何配置 "direct-share"能力(图像、文本),以及如何查询项目?

c++ - 通过引用传递 c++ 与命名空间中的类

java - 抽屉导航 - 无法实例化抽屉布局