我刚刚开始了Android开发之旅,但有一件事令我感到困惑。
创建菜单项时,为什么我们需要在android studio的自动完成功能建议使用android:showAsAction =" value"?
时为属性指定别名使用android:showAsAction时,属性被忽略。如果我替换它的任何其他工作。为什么呢?
答案 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
。因此,他们有自己的属性。