如何将图标添加到操作栏中溢出菜单中的项目

时间:2014-07-17 13:05:50

标签: android android-actionbar

我的menu.xml中的部分代码是:

<item
  android:id="@+id/action_settings"
  android:orderInCategory="100"
  android:title="@string/action_settings"
  android:icon="@drawable/icon"
  app:showAsAction="never"/>`

但是,图标不会在应用中显示。我的错是什么?

3 个答案:

答案 0 :(得分:0)

我想这可能会解决你的问题,试一试..

在菜单创建后的onPrepare菜单回调中,您只需对所有菜单项执行此操作,然后再将其返回

    menu.clear();
    MenuInflater inflater = this.getMenuInflater();
    inflater.inflate(R.menu.'your_menu_resource', menu);
    int length = menu.size();

    for(int i = 0; i < length ; i++){
        MenuItem item  = menu.getItem(i);
        item.setIcon('your_resource_identifier')
    }

    return super.onPrepareOptionsMenu(menu);

答案 1 :(得分:0)

在菜单xml中,使用以下语法嵌套菜单,您将开始获取带有图标的菜单

<item
    android:id="@+id/empty"
    android:icon="@drawable/ic_action_overflow"
    android:orderInCategory="101"
    android:showAsAction="always">
    <menu>
        <item
            android:id="@+id/action_show_ir_list"
            android:icon="@drawable/ic_menu_friendslist"
            android:showAsAction="always|withText"
            android:title="List"/>
    </menu>
</item>

答案 2 :(得分:0)

如果你想要图标,你需要更改ShowAsAction的值=&#34;从不&#34; to ShowAsAction =&#34; always&#34;

尝试下一个代码。

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

<item
    android:id="@+id/menu_item_options"
    android:icon="@drawable/ic_config"
    android:title="@string/action_settings"
    app:showAsAction="ifRoom">
    <menu>
        <item
            android:id="@+id/action_settings"
            android:icon="@drawable/ic_config"
            android:orderInCategory="100"
            android:title="@string/action_settings"
            app:showAsAction="always"/>
        <item
            android:id="@+id/action_close"
            android:orderInCategory="100"
            android:title="@string/action_close"
            app:showAsAction="ifRoom"/>
    </menu>
</item>