menu 创建没有icon的解决办法

  • 今天突然发现的一个问题,竟然不显示menu的icon图标了

如下图

最后在csdn上面找到了解决办法。

http://blog.csdn.net/heisejiuhuche/article/details/46653999

 @Override
    public boolean onCreateOptionsMenu(Menu menu) {
//        setIconsVisible(menu,true);
        getMenuInflater().inflate(R.menu.menu_main, menu);
        return true;
    }

    /**
     * 解决menu不显示图标问题
     * @param menu
     * @param flag
     */
    private void setIconsVisible(Menu menu, boolean flag) {
        //判断menu是否为空
        if(menu != null) {
            try {
                //如果不为空,就反射拿到menu的setOptionalIconsVisible方法
                Method method = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE);
                //暴力访问该方法
                method.setAccessible(true);
                //调用该方法显示icon
                method.invoke(menu, flag);
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }