什么是'app'Android XML命名空间?

这是app我从res/menu/main.xml文件中看到的命名空间的示例


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

tools:context=".MainActivity" >

<item android:id="@+id/action_settings"

    android:title="@string/action_settings"

    android:orderInCategory="100"

    app:showAsAction="never" />

</menu>

app命名空间的用途是什么?它是“标准”Android XML命名空间吗?是否有相同的值选项可用于放置在两个不同命名空间中的相同属性(例如app:showAsAction和android:showAsAction)。


来自文档: android:showAsAction=["ifRoom" | "never" | "withText" | "always" | "collapseActionView"]


即,如果属性是相反的,上面示例中的行是否意味着其他内容:


android:showAsAction="never"

它几乎看起来可能是某种“子类化”机制,但我似乎无法app从Google / Android源找到任何关于命名空间的真实文档。


PIPIONE
浏览 830回答 3
3回答

温温酱

静默忽略不存在的属性。创建自定义属性时,您可以保证自定义属性在运行时存在(显然:它的定义包含在您的应用中)。因此,支持库使用自定义属性,以便它们用于构建菜单的自定义代码可以使用适用于所有API版本的单个代码路径,从而基本上取代了使用这些android:版本的任何需求。
打开App,查看更多内容
随时随地看视频慕课网APP