是否可以使用appcompat库创建操作栏菜单?

时间:2013-07-28 21:56:58

标签: android menu android-actionbar android-appcompat

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

2 个答案:

答案 0 :(得分: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上正确显示。我从here获得了这些信息。

答案 1 :(得分:1)

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