android,actionbar,menu显示,图片,菜单禁用★★★
16lz
2021-01-26
文章总结 : 三个点 :
① menu想要显示在actionbar 位置下面
② menu 想要显示图片
③ 禁用掉系统的菜单栏
第一点 : menu我想让它显示在actionbar或者toolbar位置之下
做出如下修改 ,在style里面做出修改 :
第二点 :显示图片
你的menu的xml可能是这样写的 : 书上看到 : 想要同时显示图片和标题 showAsAction 可以指定为 withText
这个时候你就要这样做 : 直接拷贝就可以,通过反射让图片显示出来
第三点 : 禁用 菜单栏
menu正常显示了,你可能会发现有的手机点击系统菜单栏会在屏幕底部出现,不想让它显示的话: 禁用掉系统菜单栏 :
① menu想要显示在actionbar 位置下面
② menu 想要显示图片
③ 禁用掉系统的菜单栏
第一点 : menu我想让它显示在actionbar或者toolbar位置之下
做出如下修改 ,在style里面做出修改 :
第二点 :显示图片
你的menu的xml可能是这样写的 : 书上看到 : 想要同时显示图片和标题 showAsAction 可以指定为 withText
当你想让这些title显示在toolbar 上的时候,而不是单独在一个下拉的栏目里显示 : 这样做---> app:showAsAction = "always" -->注意是 :app
这个时候你就要这样做 : 直接拷贝就可以,通过反射让图片显示出来
@Overrideprotected boolean onPrepareOptionsPanel(View view, Menu menu) { if (menu != null) { if (menu.getClass() == MenuBuilder.class) { try { Method m = menu.getClass().getDeclaredMethod("setOptionalIconsVisible", Boolean.TYPE); m.setAccessible(true); m.invoke(menu, true); } catch (Exception e) { } } } return super.onPrepareOptionsPanel(view, menu);}
第三点 : 禁用 菜单栏
menu正常显示了,你可能会发现有的手机点击系统菜单栏会在屏幕底部出现,不想让它显示的话: 禁用掉系统菜单栏 :
@Overridepublic boolean dispatchKeyEvent(KeyEvent event) { if (event.getKeyCode() == KeyEvent.KEYCODE_MENU) { return true; // 消费掉事件,就可以拦截 } return super.dispatchKeyEvent(event);}
更多相关文章
- Android(安卓)带checkbox的listView 实现多选,全选,反选
- android 反编译心得
- android 获取网络数据,回传到本地用TextView显示乱码问题解决方法
- Android实现ListView异步加载图片的方法
- Android(安卓)ListView动画(逐行显示动画效果)
- Android实现加载广告图片和倒计时的开屏布局
- 使用Html在EditText中任意位置插入图片并正确显示
- LinearLayout不能显示全部内容
- android编程常见问题-程序在模拟器中不显示