【问题标题】:What is the meaning of xmlns:tools in Android XML layout?Android XML布局中的xmlns:tools是什么意思?
【发布时间】:2013-02-28 09:19:36
【问题描述】:

例如,在:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >
...

我需要放吗?

【问题讨论】:

标签: android xml android-layout android-tools-namespace


【解决方案1】:

它定义了文档的 XML 命名空间。你应该把它,否则像&lt;RelativeLayout&gt;这样的标签不能被解析器识别。

命名空间是 XML 文档包含来自不同供应商的标签的一种方式。通过使用 xmlns 属性声明,默认情况下,您使用的是此处定义的 XML 元素:http://schemas.android.com/apk/res/android(请注意,此链接已损坏 - this discussion 解释了原因)。

您还声明了额外的命名空间tools,这不是您的默认命名空间,因此在引用其中定义的元素或属性时,您必须添加tools前缀,例如:

tools:context=".SomeActivity"

【讨论】:

  • @Sam - 这是因为 Google 没有公开它。
  • @Sam - 请参阅 this discussion 了解为什么这些模式不可用。
  • 你做了忍者编辑吗?我发誓这是一个不同的链接附加到不同的句子......也许我只是划出来了。我同意,架构不需要是有效链接,只要一致即可。
  • @Sam - 我做了,用讨论的链接更新答案(我还修复了一个链接) - 但确切的链接并不重要,因为所有来自 Android 的 xmlns 都没有定义。
  • @kamituel 讨论的链接也失效了。
【解决方案2】:

以下是来自 Android 开发门户的有用链接:https://developer.android.com/studio/write/tool-attributes.html

它说

Android Studio 支持工具命名空间中的各种 XML 属性,这些属性可启用设计时功能(例如在片段中显示哪种布局)或编译时行为(例如将哪种收缩模式应用于您的 XML 资源) .当您构建应用时,构建工具会移除这些属性,因此不会影响您的 APK 大小或运行时行为。

即tools 命名空间有助于设计 UI,所有带有前缀 'tools' 的属性将在构建时被删除。

【讨论】:

    【解决方案3】:

    事实上,当你这样做时:

    <RelativeLayout android:id> </RelativeLayout>
    

    xml 将调用 http://schemas.android.com/apk/res/android:id 而不是调用 android:id。它只是声明您可以在 xml 中使用的所有属性和视图的页面。

    这里有一个解释。 http://www.w3schools.com/xml/xml_namespaces.asp

    【讨论】:

      猜你喜欢
      • 2016-12-16
      • 2021-09-04
      • 1970-01-01
      • 2015-09-16
      • 2011-02-16
      • 2021-09-29
      • 2010-11-13
      • 2018-08-20
      相关资源
      最近更新 更多