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"
如果有人可以解释 XML 文件中的命名空间(android、app、tool)的含义是什么?每个词定义不同的库吗?
据我所知,在 XML 文件中,URI 只是一个字符串,它为命名空间提供了唯一的定义,那么 android 应用程序如何将命名空间连接到库?
假设我们给了“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/