最近我从常规的操作栏实现切换到最近发布的appcompat实现。我的应用程序大量使用操作栏提供功能。自从切换后,在旧版本API(小于11)中没有任何菜单项。而新版本API有,但它们不显示像配置的那样的图片(如果空间|withText)。有其他人经历过这种情况或想出了任何解决方案吗?
最近我从常规的操作栏实现切换到最近发布的appcompat实现。我的应用程序大量使用操作栏提供功能。自从切换后,在旧版本API(小于11)中没有任何菜单项。而新版本API有,但它们不显示像配置的那样的图片(如果空间|withText)。有其他人经历过这种情况或想出了任何解决方案吗?
当使用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上正确显示。我从这里获取了此信息。