android4.4menu如何显示

我的项目要像京东一样能在虚拟键里显示菜单按钮,这个要怎么做?图片说明这个是京东的截图

3个回答

不好意思 这个才是答案

targetSdkVersion改成13或更小就可以了,不过每个activity都会出现那个菜单,很不爽;

不改targetSdkVersion的办法:
在onCreate() 里setContentView()之后加入如下代码即可。
try {
window.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
}
catch (IllegalAccessException e) {
Log.w(TAG, "Could not access FLAG_NEEDS_MENU_KEY in addLegacyOverflowButton()", e);
}

就是控制个layout的显示而已

两种方法
一种是android:targetSdkVersion < 13

另一种是 在需要的地方调用
private void setMenuShowStyle(){
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if(menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, true);
}
} catch (Exception ex) {
Log.d(LOGTAG, "we can't set sHasPermanentMenuKey");
}
}

立即提问
相关内容推荐