在Android中,有时候没有硬件Menu。于是需要软件Menu。但是默认Google想让你用ActionBar上的Menu。

但是,有时候我们确实需要在在底部的软按键上加Menu。这里提供一种方法,经过测试,可行。

这里,设置Window的属性,要求添加Menu键。

为什么用反射,是因为这个是隐藏的属性。并且,在低版本上,这个属性是不存在的。

另外,软按键的显示,是在SystemUI里面控制的,这里没有详细分析,有时间可以分析一下。

try {

getWindow().addFlags(WindowManager.LayoutParams.class.getField("FLAG_NEEDS_MENU_KEY").getInt(null));

}

catch (NoSuchFieldException e) {

// Ignore since this field won't exist in most versions of Android

LogMi.w(TAG, "cant find field FLAG_NEEDS_MENU_KEY at WindowManager.LayoutParams");

}

catch (IllegalAccessException e) {

Log.w(TAG, "Could not access FLAG_NEEDS_MENU_KEY in addLegacyOverflowButton()", e);

}



来自为知笔记(Wiz)

更多相关文章

  1. Android(安卓)8.0 系统启动流程之init进程--第二阶段(五)
  2. ListView控件开发中常见的问题
  3. EditText仅允许特定类型数据输入
  4. Android(安卓)音量控制流程分析
  5. android发送模拟按键消息,出现死锁,timeout的解决方法
  6. Android手机软键盘enter改为搜索
  7. Android(安卓)和 target 分析
  8. android 数据存储之 读写文件
  9. DataBinding使用教程详解

随机推荐

  1. Android Service总结06 之AIDL
  2. 修改android 系统设置 android 版本
  3. EditText 相关功能
  4. Android(安卓)4.0开发环境搭建和测试
  5. android 系统(13)---Android O treble 新增
  6. Android之可收缩展开列表ExpandableList
  7. android修改底层键值
  8. android视频播放器源码分析
  9. Android(安卓)Touch事件分析
  10. WebKit For Android