【发布时间】:2016-12-12 22:52:24
【问题描述】:
我相信以前使用过android的每个人都熟悉xml命名空间声明xmlns:android = xmlns:android="http://schemas.android.com/apk/res/android。这就是我的问题所在。
如果上面的命名空间声明主要是为了唯一标识,那么android:layout_width 或android:layout_height 等所有属性究竟来自哪里?
我能理解这一点的唯一方法是,如果 xmlns:android="http://schemas.android.com/apk/res/android 是一个包含预定义属性的架构,那么您可以修改所有这些属性。如果是这种情况,那么此架构存储在哪里?
我查看了上面的链接,看看我的帖子是否可能是重复的帖子,但事实并非如此。另一篇文章基本上只是告诉你xmlns:android="http://schemas.android.com/apk/res/android 做了什么。但是,我已经知道该名称空间声明的功能是什么。我关心的是,当上面的命名空间没有引用任何内容时,android 如何知道每个元素的属性是什么?或者至少我认为上面的命名空间没有被引用。
【问题讨论】:
-
关于您的编辑,there have been several similar questions。而且一直没有明确的答案,至少我已经找到了。您所问的内容非常清楚地记录在这里。 developer.android.com/guide/topics/resources/…
-
正如那些答案所说“它是一个 URI,而不是一个 URL”,这意味着,你不能只在浏览器中访问该地址,然后期望返回结果
-
很抱歉让您感到困惑。也许我的问题不是很清楚,所以让我为您重新澄清一下。每当您在诸如相对布局之类的元素标签内键入诸如 android: 之类的内容时,android 都会为您提供有关该属性可能是什么的建议。诸如 android:background、android:layout_width、android:padding 之类的东西。现在我的问题不是这些属性是什么以及它们做什么,而是这些属性在哪里定义。我确信它们必须在某个地方,以便 android 知道为特定元素将它们拉起来。