安卓开发中的 android:showAsAction 是否已经被废弃?

5

我有一个关于 "android:showAsAction" 的问题。我有一本关于Android的书籍,书中使用了该属性(我认为这本书已经不是最新的版本,但大部分内容仍然有效)。

    android:showAsAction

要在操作栏上显示菜单项(菜单是在Fragment中创建的),我正在使用Android Studio。编译SDK版本设置为API 19(KitKat)。我正在我的LG G2上运行它,其搭载了Android 4.4。
我想知道这是否已经过时,因为Android Studio告诉我:
     Should use app:showAsAction with the appcompat library with xmlns:app="http://schemas.android.com/apk/res-auto" less... (Ctrl+F1) 
     When using the appcompat library, menu resources should refer to the showAsAction in the app: namespace, not the android: namespace.  
     Similarly, when not using the appcompat library, you should be using the android:showAsAction attribute.

我认为appcompat库就是Support库。然而,我并未使用它,因为我不需要向后兼容。
此外,当我切换到app:showAsAction并添加适当的app:xmlns时,我的操作栏中的动作项不可见。 当我切换回android:showAsAction时,图标就会显示出来了。
我在想我的代码有什么问题,我应该使用app:showAsAction还是android:showAsAction?
最好的问候
2个回答

9

它并没有被弃用,只是在使用支持库中的 ActionBar 时,需要使用 app: 替代 android:。所有选项的含义都是相同的。因为支持库是一个独立的库,所以不能在其中使用 android:。如果您正在使用支持操作栏,则无法真正使用 android:


好的,我现在明白了。我还有一个问题——是不是更倾向于使用app:?因为Android Studio中的android:showAsAction仍然提示它是一个错误? - Ma Kro

1
同样的问题 - app:showAsAction vs android:showAsAction。 请参考Yannick的评论。 我使用


android:showAsAction="ifRoom"

and add

tools:ignore="AppCompatResource"

用于忽略Android Studio的错误提示


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接