Android 使用工具栏不显示菜单图标
Android Menu Icon Not show using Toolbar
我的代码使用工具栏
我尝试使用 How To show icons in Overflow menu in ActionBar
但不起作用
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);
比如How To show icons in Overflow menu in ActionBar
我将部分 "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);
}
现在图标可见
我的代码使用工具栏
我尝试使用 How To show icons in Overflow menu in ActionBar
但不起作用
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);
比如How To show icons in Overflow menu in ActionBar
我将部分 "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);
}
现在图标可见