为什么所有属性都有前缀?
这样做的设计优势是什么,
<TextView
android:layout_width="105px"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
而不是这样?
<android:TextView
layout_width="105px"
layout_height="wrap_content"
text="@string/hello"
/>
android: 前缀无处不在,不是有点啰嗦吗?
What is the design advantage to do this
<TextView
android:layout_width="105px"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
and not this
<android:TextView
layout_width="105px"
layout_height="wrap_content"
text="@string/hello"
/>
Is that android: prefix everywhere not a little bit to chatty?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(5)
android
是一个命名空间前缀,它用于告知这些属性位于绑定到该前缀的 XML 命名空间中。您应该在 XML 文档中的某个位置有一个命名空间声明,类似于xmlns:android =“此处的命名空间 URI”
。为属性添加前缀是很不常见的,但是当在不属于该词汇表的 XML 元素中找到给定 XML 词汇表的属性时,就必须这样做,因为这样可以避免冲突。android
is a namespace prefix and it is used to tell that those attributes are in the XML namespace bound to that prefix. You should have a namespace declaration somewhere in your XML document which looks likexmlns:android = "the namespace URI here"
. It is quite unusual to prefix attributes but it is necessary when attributes of a given XML vocabulary are found in XML elements not belonging to that vocabulary because it avoids collisions.在 XML 中,属性必须带有前缀才能位于名称空间中;它们不会自动获取元素的名称空间。
In XML, attributes have to be prefixed in order to be in a namespace; they don't automatically pick up the namespace of the element.
它的 xml 引用了 afaik,查看顶视图并查看链接。
Its xml references afaik, look at the top view and see the link.
从未见过第二种变体的使用,也不知道它是否有效。如果是的话 - 我相信如果你愿意的话你可以使用它。
Have never seen the second variant in use and don't really know if it works or not. If yes - I'm sure you can use it if you want.
我想答案是:这样的设计没有什么优势。这就是为什么我从未见过有人使用它。
I think the answer is: there is no advantage in this design. Which is why I've never seen anyone use it.