Android XML布局中xmlns:tools的含义是什么?

时间:2013-03-12 17:46:27

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

例如,在:

<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" >
...

我需要把它吗?

3 个答案:

答案 0 :(得分:25)

它定义了文档的XML命名空间。你应该把它放进去,否则解析器就无法识别像<RelativeLayout>这样的标签。

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

您还声明了其他名称空间tools,它不是您的默认名称空间,因此在引用那里定义的元素或属性时,您必须添加tools前缀,例如:

tools:context=".SomeActivity"

答案 1 :(得分:1)

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

它说

  

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

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

答案 2 :(得分:0)

事实上,当你这样做时:

<RelativeLayout android:id> </RelativeLayout>

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

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