Android中操作栏中没有菜单项显示

3
我正在开发一个Android应用程序,尝试将菜单项放入ActionBar中。它有足够的空间,所以不应该溢出或其他什么问题。在我的menu.xml文件中,我已经添加了该项和android:showAsAction="ifRoom|withText"
然而,无论屏幕大小如何,该菜单都不会显示在ActionBar上(尽管如果用户按键,它会出现在菜单中)。由于我受到保密协议的限制,无法发布完整代码,但我会回答所有问题。
以下是我填充菜单的部分代码:
public boolean onCreateOptionsMenu(Menu menu) {

        getMenuInflater().inflate(R.menu.drinks, menu);
        return true;
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:

            NavUtils.navigateUpFromSameTask(this);
            return true;

        case R.id.done:
            //stuff


        }
        return super.onOptionsItemSelected(item);
    }

1
那个操作栏上有什么文本?如果是一个很长的字符串和一个大图标,它可能会进入溢出菜单。在较高的API上,只要用户有一个菜单按钮,溢出菜单就不会显示。 - Radu
没有图标,只有一个简短的字符串:"完成"。 - Ionut Berus
您设置的targetSDK是什么?这个问题出现在哪个设备上? - gunar
目标SDK为17。我尝试过的所有设备都包括HTC Explorer、BlueStacks模拟器和三星Galaxy III。 - Ionut Berus
那个注释是不相关的。 - gunar
显示剩余5条评论
1个回答

2
由于您只有一个菜单项,因此请改用此属性:android:showAsAction="always"
编辑:如果您在 post Honeycomb 上运行代码,则上述方法始终有效。但是,根据开发人员文章developer article,为了在 pre-Honeycomb 上运行,您需要从 ActionBarActivity 扩展,这意味着添加兼容性支持 v4 和 v7,并为您的活动设置以下主题: <activity android:theme="@style/Theme.AppCompat.Light" ... > ...或使用 Them.AppCompat 主题之一,或使用自己扩展的这些主题之一。

操作栏出现在ICS设备上吗?还是在ICS之前的设备上不会出现? - gunar
我相信这可能是正确的答案,因为我现在已经在S Galaxy 4上测试了我的代码,它可以工作,但在API 10的HTC Explorer上无法工作。让我尝试并测试你的建议。 - Ionut Berus
在一些设备上,溢出菜单可能不会出现(在操作栏右侧的三个点),在这种情况下,手机左下方提供了一个菜单按钮。 - Akshat Agarwal

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