Android XML文件中的命名空间

3
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”这个词作为默认命名空间,那么为什么在不同的元素中可以选择不同的属性?是每个元素(视图项)都有其独特的属性吗?


看看这个,它有足够好的解释,如需进一步了解,请查看安卓文档。 :) - dummystreamer
你有没有检查我下面的答案? - Harshad Pansuriya
1个回答

2

应用程序命名空间

app命名空间不特定于库,而是用于定义在您的应用程序中的所有属性,无论是由您的代码还是导入的库定义的,有效地创建了一个用于自定义属性的单个全局命名空间-即,未由Android系统定义的属性。

Android命名空间

appcompat-v7库使用自定义属性反映android:命名空间以支持较早版本的Android。

工具命名空间

工具命名空间是Android工具所识别的专门命名空间,因此,在tools命名空间中定义的所有视图元素上的属性将在打包应用程序时自动删除,没有运行时开销。

请参考此答案。

简而言之:

android:text --> 在运行应用程序时您会看到的内容。

tools:text --> 仅在预览窗口中看到的内容(当您需要设计布局,但不希望将其显示在应用程序的布局中时使用)。


我相信OP已经知道了。此外,我不明白你的“android NameSpace”部分是如何解释android命名空间的。简而言之,已经被人们所熟知,需要解释的是什么。虽然第一个(复制粘贴)段落还是有用的。 - Tamás Barta

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接