不使用appcompat库时应该使用android:showAsAction

我有一个奇怪的问题,我在我的Android应用程序中使用menu.xml文件,如下所示:

   

它工作得很好,但几天前我正在将我的eclipse更新到最后一个版本,之后,app:showAsAction =“always”显示错误:

不使用appcompat库时应该使用android:showAsAction,之后我的操作栏图标被移动到溢出栏而根本没有显示在操作栏中。

无论如何,appcompat库是我的基本样式的父级。 我该怎么做才能解决这个问题?

  • Eclipse不会创build主要活动和布局
  • 如何在Eclipse中获取Android API文档
  • Eclipse升级不起作用
  • 无法启动Android模拟器:“无法从快照加载虚拟机”
  • Eclipse中的Android NDK ::(无法运行程序“ndk-build”:未知原因)
  • IntelliJ Idea未能创build一个新的Android应用程序项目
  • 从另一个apk获取资源
  • 无法检索状态为404的API配置 - Google App Engine
  • 你需要做三件事 –

    1. 添加以下3件事xmlns:tools="schemas.android.com/tools" tools:context="com.example.sample.YourActivity" xmlns:yourapp="http://schemas.android.com/apk/res-auto"到你的

      标签

      以及通常的xmlns:android="http://schemas.android.com/apk/res/android"

    2. yourapp:showAsAction="ifRoom"

    3. 最后,通过Project – > Clean清理项目……

    最后一步是为我解决了这个问题。 简单地清理项目(有时它们会变脏)

    这是最终代码的样子:

        

    这适用于我,我使用appcompatlibrary:

     compat:showAsAction="always" 

    代替:

     app:showAsAction="always" 

    并使用compat:showAsAction =“always”,在menu.xml里面包含以下行:

      xmlns:compat="http://schemas.android.com/apk/res-auto" > 

    面临同样的问题。 这两个选项对我有用:

    1.包括–xmlns:compat =“http://schemas.android.com/apk/res-auto”>然后使用:“compat:showAsAction =”ifRoom“/>”

    2.不包括compat,只需使用:app:showAsAction =“ifRoom”/>

    PS:使用Android Studio。

    不使用appcompat库时应该使用android:showAsAction

    问题:确保菜单项使用正确的名称空间Id:AppCompatResource

    使用appcompat库时,菜单资源应该引用app:namespace中的showAsAction,而不是android:namespace。

    同样,当不使用appcompat库时,您应该使用android:showAsAction属性。

        

    您需要做的就是将以下行添加到item元素以禁止显示警告。 将命名空间作为compat vs app for "http://schemas.android.com/apk/res-auto"实际上并没有做任何特别的事情。

    tools:ignore="AppCompatResource"

    完整代码:

        

    注意: compat标签可以是app或任何你想要的。