4

最近我从常规操作栏实现切换到最近发布的 appcompat 实现。我的应用大量使用了操作栏来提供功能。自切换以来,在较旧的点 API(少于 11 个)上没有任何菜单项。更新的 API 可以,但它们不会像配置的那样显示图像(如果 room|withText)。有没有其他人经历过这个或想出任何解决方案?

4

2 回答 2

25

在使用 appcompat 库时,我发现了发生了什么。您可以像平常一样创建菜单。

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
   return true;
}

但是,在您的菜单 xml 文件中,将 xmlns:app 属性添加到菜单标记,如下所示:

<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto" >

然后,在您通常指定“showAs”样式(ifRoom、withText 等)的每个菜单项中,在常规行旁边包含此替代行:

app:showAsAction="ifRoom|withText"
android:showAsAction="ifRoom|withText"

在此之后,您的菜单将在当前和旧 API 上正确显示。我从这里得到了这个信息。

于 2013-08-02T10:51:15.857 回答
1

如果设备上有物理“菜单”按钮,它将显示上下文菜单。如果没有,菜单项将被添加到 ActionBar。

于 2013-08-01T15:22:47.007 回答