“应用程序”Android XML名称空间是什么?

下面是我在res/menu/main.xml文件中看到的app名称空间的一个示例

<菜单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"
工具:context=“.MainActivity”>
<项目android:id=“@+id/action\u设置”
android:title=“@string/action\u设置”
android:orderInCategory=“100”
app:showAsAction=“从不”/>
&lt/菜单>

应用程序名称空间的用途是什么?它是一个“标准”的Android XML名称空间吗?相同的值选项是否可用于放置在两个不同名称空间中的相同属性(例如app:showAsActionandroid:showAsAction

从文档中:
android:showAsAction=[“ifRoom”|“never”|“withText”|“always”|“collapseActionView”]

i、 例如,如果属性改为:

android:showAsAction=“从不”

这看起来似乎是某种“子类化”机制,但我似乎无法从Google/Android源代码中找到任何关于app名称空间的真实文档

app名称空间并非特定于某个库,但它用于应用程序中定义的所有属性,无论是由您的代码还是由您导入的库定义,有效地为自定义属性(即android系统未定义的属性)创建单个全局名称空间

在这种情况下,appcompat-v7库使用镜像android:命名空间的自定义属性来支持以前版本的android(例如:android:showAsAction仅添加在API11中,但app:showAsAction(作为应用程序的一部分提供)适用于应用程序的所有API级别)-显然,在未定义该属性的API级别上,使用android:showAsAction不起作用

发表评论