我们是不是需要将 xmlns:android="http://schemas.android.com/apk/res/android" 添加到 XML 文件的每个根视图中?

Posted

技术标签:

【中文标题】我们是不是需要将 xmlns:android="http://schemas.android.com/apk/res/android" 添加到 XML 文件的每个根视图中?【英文标题】:Do we need to add xmlns:android="http://schemas.android.com/apk/res/android" to every root view of an XML file?我们是否需要将 xmlns:android="http://schemas.android.com/apk/res/android" 添加到 XML 文件的每个根视图中? 【发布时间】:2021-07-27 03:52:42 【问题描述】:

如果我创建了LinearLayout,添加xmlns:android="http://schemas.android.com/apk/res/android" 并关闭它,我是否需要再次将命名空间添加到同一文件中的另一个ViewGroup

【问题讨论】:

【参考方案1】:

是的,如果您想使用 andorid: 前缀属性,则需要在每个 root 视图上声明命名空间。但是不,您不需要在同一文件中的不同 ViewGroup 上声明命名空间(并且不允许有多个根)。

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android">

    <FrameLayout />
</FrameLayout>

您可以查看来自 W3Schools 的 this article,它描述了命名空间是什么以及它们为何如此重要。

【讨论】:

&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" [other views]&gt; &lt;/LinearLayout&gt; &lt;LinearLayout [other views]&gt; &lt;/LinearLayout&gt; 这段代码可以吗,还是我需要这样做?:&lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" [other views]&gt; &lt;/LinearLayout&gt; &lt;LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" [other views]&gt; &lt;/LinearLayout&gt; 你的布局文件中不能有多个根,这没有任何意义。所以这些例子都没有真正起作用。 您能否提供一个使用此命名空间的示例?请包含 2 个或更多视图组。 在我的回答中添加了一个示例。

以上是关于我们是不是需要将 xmlns:android="http://schemas.android.com/apk/res/android" 添加到 XML 文件的每个根视图中?的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 qRegisterMetaType 而不是 Q_ENUM?

android 我的粗浅的理解

为啥我们更喜欢在角度中使用 $q 而不是 $http [重复]

XML中的“xmlns”是啥意思?

xmlns:android="http://schemas.android.com/apk/res/android" 被添加到我的所有布局对象中导致错误

为啥这行 xmlns:android="http://schemas.android.com/apk/res/android" 必须是布局 xml 文件中的第一行?