Android 布局中的 xmlns 属性
xmlns attributes in Android layouts
我精通 Java,但不太熟悉 XML。在我的许多 layout/menu 文件中,我有这些行:
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
有时我拥有所有这些,有时只是一些组合。有人可以对这三行进行解释吗?在哪些情况下我们应该包括每一个?到目前为止,我只是在 Android Studio 提示我时添加它们,但我想了解用例。谢谢!
Could somebody give an explanation towards these three lines?
每个声明一个不同的 XML 命名空间(分别为 android
、app
和 tools
)。
Under which scenarios should we include each one?
如果您的 XML 文件具有一个或多个前缀为 android:
的属性,您需要声明 android
命名空间。许多 XML 文件将具有这些,来自框架定义的运行时属性。
如果您的 XML 文件具有一个或多个前缀为 app:
的属性,您需要声明 app
命名空间。一些布局和菜单资源文件将具有这些,来自库定义的属性。
如果您的 XML 文件具有一个或多个前缀为 tools:
的属性,您需要声明 tools
命名空间。很少有资源文件会有这些,来自用于帮助构建工具了解要做什么的属性。
我精通 Java,但不太熟悉 XML。在我的许多 layout/menu 文件中,我有这些行:
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
有时我拥有所有这些,有时只是一些组合。有人可以对这三行进行解释吗?在哪些情况下我们应该包括每一个?到目前为止,我只是在 Android Studio 提示我时添加它们,但我想了解用例。谢谢!
Could somebody give an explanation towards these three lines?
每个声明一个不同的 XML 命名空间(分别为 android
、app
和 tools
)。
Under which scenarios should we include each one?
如果您的 XML 文件具有一个或多个前缀为 android:
的属性,您需要声明 android
命名空间。许多 XML 文件将具有这些,来自框架定义的运行时属性。
如果您的 XML 文件具有一个或多个前缀为 app:
的属性,您需要声明 app
命名空间。一些布局和菜单资源文件将具有这些,来自库定义的属性。
如果您的 XML 文件具有一个或多个前缀为 tools:
的属性,您需要声明 tools
命名空间。很少有资源文件会有这些,来自用于帮助构建工具了解要做什么的属性。