简体   繁体   English

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

[英]How to add icon to the items in the overflow menu in the action bar

Part of the code in my menu.xml is: 我的menu.xml部分代码是:

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

However, the icons don't show in the app. 但是,图标不会显示在应用程序中。 What is my mistake? 我怎么了

I guess this might solve you problem, try it out.. 我想这可能会解决您的问题,请尝试一下。

In onPrepare callback of menu after menu creation, you just do this for all the menu items, before returning it back again 创建菜单后,在菜单的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);

In your menu xml, use the following syntax to nest menu, you will start getting the menu with icons 在菜单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>

If you want icon you need to change the value of ShowAsAction="never" to ShowAsAction="always" 如果需要图标,则需要将ShowAsAction =“ never”的值更改为ShowAsAction =“ always”

Try the next code. 尝试下一个代码。

<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>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM