首页 > 代码库 > 关于解决android4.0系统中菜单无法添加Icon的问题
关于解决android4.0系统中菜单无法添加Icon的问题
在Android4.0系统中,创建菜单Menu,然后通过setIcon方法给菜单添加图标是无效的,图标不会显出来,而之前的系统中是可以显示出来的。这个问题的根本原因在于4.0系统中,涉及到菜单的源码类 MenuBuilder做了改变,其中有private boolean mOptionalIconsVisible = false;属性使得无法显示菜单图标。
但是,我们又无法在开发的应用程序中创建MenuBuilder这个对象的(因为MenuBuilder是系统内部的框架类)。
当然如果不是很需要还挺建议不用的,或者换一种方式。要是非得用而且还要非得用setIcon的方法,那就只有通过反射机制来实现了调用setOptionalIconsVisible方法设置mOptionalIconsVisible为true
//自己编写设置菜单图标有效函数 //参数menu就是onCreateOptionsMenu(Menu menu) 中的参数menu //所以该函数要使用在它里面 使用,并且要在你使用setIcon()之前调用。 private void setIconEnable(Menu menu, boolean enable) { try { Class<?> c = Class.forName("com.android.internal.view.menu.MenuBuilder"); Method m = c.getDeclaredMethod("setOptionalIconsVisible", boolean.class); m.setAccessible(true); m.invoke(menu, enable); } catch (Exception e) { e.printStackTrace(); } }
关于解决android4.0系统中菜单无法添加Icon的问题
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。