此次布局是根据 鸿洋大神的发布 而做
但是他的是布局还是在 2.3 4.4 ,此更新在5.0 还是有些异处
比如menu的显示不需要去写反射了直接 给你排布好了,
但是子menu还是需要去找到menu buildier 以及 setOptionalIconsVisible 如下
private void setIconEnable(Menu menu, boolean b) { // TODO Auto-generated method stub try { Class<?> clazz = Class .forName("com.android.internal.view.menu.MenuBuilder"); Method m = clazz.getDeclaredMethod("", boolean.class); m.setAccessible(true); // MenuBuilder实现Menu接口,创建菜单时,传进来的menu其实就是MenuBuilder对象(java的多态特征) m.invoke(menu, true); } catch (Exception e) { e.printStackTrace(); } }
以上这种情况在继承activity的下。
在Fragment情况还得启用 如下代码
@Override public boolean onMenuOpened(int featureId, Menu menu) { if (featureId == Window.FEATURE_ACTION_BAR && 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 (Exception e) { e.printStackTrace(); } } } return super.onMenuOpened(featureId, menu); }