例如,在:
<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" >
...
我需要放吗?
例如,在:
<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" >
...
我需要放吗?
它定义了文档的 XML 命名空间。你应该把它,否则标签<RelativeLayout>
不能被解析器识别。
命名空间是 XML 文档包含来自不同供应商的标签的一种方式。通过使用xmlns
您声明的属性,默认情况下,您使用的是此处定义的 XML 元素:http: //schemas.android.com/apk/res/android(请注意,此链接已损坏 -此讨论解释了原因)。
您还声明了额外的命名空间,tools
这不是您的默认命名空间,因此当引用其中定义的元素或属性时,您必须添加tools
前缀,例如:
tools:context=".SomeActivity"
以下是来自 Android 开发门户的有用链接:https ://developer.android.com/studio/write/tool-attributes.html
它说
Android Studio 支持工具命名空间中的各种 XML 属性,这些属性支持设计时功能(例如在片段中显示哪种布局)或编译时行为(例如将哪种收缩模式应用于您的 XML 资源)。当您构建应用程序时,构建工具会删除这些属性,因此不会影响您的 APK 大小或运行时行为。
即工具命名空间有助于设计 UI,所有带有前缀“工具”的属性将在构建时被删除。
事实上,当你这样做时:
<RelativeLayout android:id> </RelativeLayout>
xml 将调用http://schemas.android.com/apk/res/android:id而不是调用 android:id 。它只是声明您可以在 xml 中使用的所有属性和视图的页面。