为什么android需要showAsAction ="总是"用别名作为前缀?

时间:2015-06-13 14:48:49

标签: android

我刚刚开始了Android开发之旅,但有一件事令我感到困惑。

创建菜单项时,为什么我们需要在android studio的自动完成功能建议使用android:showAsAction =" value"?

时为属性指定别名

使用android:showAsAction时,属性被忽略。如果我替换它的任何其他工作。为什么呢?

相关 https://stackoverflow.com/a/17914095/1084568

1 个答案:

答案 0 :(得分:2)

如果您使用的是原生操作栏,则使用android:showAsAction。只要您将android:视为前缀,就会知道它是Android框架定义的属性。

如果您使用操作栏的appcompat-v7后端,则来自库(appcompat-v7)。库不能发明新的android:属性。相反,对于库定义的属性,您使用与app: URL绑定的新命名空间(例如,http://schemas.android.com/apk/res-auto)。

  

它说如果我们假装支持较旧的Android版本,如2.1

,android:namespace无法提供对该属性的访问

正确。在这种情况下,虽然android:showAsAction已添加到Android 3.0中的框架中,但appcompat-v7的部分目标是支持回Android 2.1。虽然Google有一台时间机器,但他们还没有使用它来“重新调整”Android并添加以前不存在的属性。

(但是,如果他们这样做了,我们就不会知道它,因为我们的过去会被改变以拥有这些属性,除非我们以某种方式存在于正常的时空连续体之外,这经常出现涉及穿斗篷

因此,appcompat-v7可以使用来自Android 1.0的android:icon等属性,但不能支持Android 3.0之前的android:showAsAction。因此,他们有自己的属性。