2

我有与这些线程完全相同的问题:

操作栏上不显示任何操作或图标;仅在溢出中

菜单项不会显示在操作栏中

没有人提供解决方案,所以我想再次提出它。

我有一个 xml 文件 my_menu.xml,如下所示:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
    <item
        android:id="@+id/delete"
        android:showAsAction="ifRoom|withText"
        android:icon="@drawable/ic_delete_image"
        android:title="delete"/>
</menu>

我的活动扩展了 ActionBarActivity 并实现了这些方法:

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

@Override
public boolean onOptionsItemSelected(MenuItem item) {

            switch(item.getItemId()) {
                case R.id.delete:
                    //delete something
                    break;
            }

            return(true);
}

在我的书中:“ifRoom 的值意味着如果有空间,菜单项将出现在操作栏中” - 我已经测试过使用 ifRoom、ifRoom|withText 和总是,但该项目总是以溢出结束菜单。我已经在不同的设备上测试了这个应用程序,它有足够的空间。有人对此有解决方案吗?

汉克

4

2 回答 2

5

我的活动扩展了 ActionBarActivity

文档中所述,如果您正在使用appcompat_v7操作栏的反向端口及其关联ActionBarActivity,则您的菜单资源需要showAsAction在您的应用程序自定义的命名空间中具有:

<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android"
      xmlns:yourapp="http://schemas.android.com/apk/res-auto" >
    <item
        android:id="@+id/delete"
        yourapp:showAsAction="ifRoom|withText"
        android:icon="@drawable/ic_delete_image"
        android:title="delete"/>
</menu>

这是一个完整的示例项目,演示了appcompat_v7操作栏的使用。

于 2014-05-02T12:42:54.820 回答
0

尝试将其更改为

<item
        android:id="@+id/delete"
        android:showAsAction="always|withText"
        android:icon="@drawable/ic_delete_image"
        android:title="delete"/>

希望这会帮助你。

于 2014-05-02T11:39:53.407 回答