简体   繁体   English

Android菜单图标未使用工具栏显示

[英]Android Menu Icon Not show using Toolbar

My code using Toolbar 我的代码使用工具栏
I has try using How To show icons in Overflow menu in ActionBar 我尝试在ActionBar的“溢出”菜单中使用“ 如何显示图标”
but not work 但不起作用

android:minSdkVersion="14"
android:targetSdkVersion="22"
toolbar = (Toolbar) findViewById(R.id.toolbar);
toolbar.setLogo(R.drawable.ic_launcher);
setSupportActionBar(toolbar);
for(int i=0; i < NavDrawerArray.length; i++) {
    switch (i) {
        case 0:
            icon = R.drawable.ic_action_dock;
            break;
        case 1:
            icon = R.drawable.ic_action_time;
            break;
        case 2:
            icon = R.drawable.ic_action_share_nav;
            break;
        case 3:
            icon = R.drawable.ic_action_important;
            break;
        case 4:
            icon = R.drawable.ic_action_about;
            break;
        case 5:
            icon = R.drawable.ic_minimize;
            break;
        case 6:
            icon = R.drawable.ic_action_cancel;
            break;
        default:
            break;
    }
    menu.add(Menu.NONE, i, Menu.NONE, NavDrawerArray[i]).setIcon(icon);
}
return super.onCreateOptionsMenu(menu);

such as How To show icons in Overflow menu in ActionBar 例如如何在ActionBar的“溢出”菜单中显示图标

I move parts "setOptionalIconsVisible" from onMenuOpened to onPrepareOptionsMenu 我将部分“ setOptionalIconsVisible”从onMenuOpened移到onPrepareOptionsMenu

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    MenuInflater inflater = getMenuInflater();
    inflater.inflate(R.menu.main, actionmenu.getMenu());

    for(int i=0; i < NavDrawerArray.length; i++) {
        switch (i) {
            case 0:
                icon = R.drawable.ic_action_computer;
                break;
            case 1:
                icon = R.drawable.ic_action_download;
                break;
            case 2:
                icon = R.drawable.ic_action_share;
                break;
            case 3:
                icon = R.drawable.ic_action_important;
                break;
            case 4:
                icon = R.drawable.ic_action_cancel;
                break;
            default:
                break;
        }
        menu.add(Menu.NONE, i, Menu.NONE, NavDrawerArray[i])
            .setIcon(icon)
            .setShowAsAction(MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);

    }
    return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
    if(menu != null){
        if(menu.getClass().getSimpleName().equals("MenuBuilder")){
            try{
                Method m = menu.getClass().getDeclaredMethod(
                    "setOptionalIconsVisible", Boolean.TYPE);
                m.setAccessible(true);
                m.invoke(menu, true);
            }
            catch(NoSuchMethodException e){}
            catch(Exception e){}
        }
    }
    return super.onPrepareOptionsMenu(menu);
}

now icon visible 现在可见的图标

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

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