此次布局是根据 鸿洋大神的发布 而做
但是他的是布局还是在 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);
}