我有一个一直运行良好的应用程序,但突然有些用户运行4.0设备(不是全部)声称菜单无效......
我有一个包含6个以上选项的菜单或默认情况下Android显示的菜单。 用户抱怨说,当他们点击显示其余选项的 MORE 按钮时,会出现显示所有其他选项的弹出列表,但他们无法点击任何选项。弹出的列表不接受除后退按钮以外的任何用户操作,后退按钮将关闭它。
有没有人知道为什么会这样?我无法在我拥有的任何设备上或我拥有的任何模拟器上重现错误....我假设我正在处理一些碎片问题或操作系统更改问题,因为代码基本上是可以的。< / p>
有人有什么想法吗?菜单是否会以某种方式发生显着变化,从而导致这种情况发生?
答案 0 :(得分:2)
如果我理解你问题正确,那么我遇到了类似的问题,
问题 - 2.x有一个专用的菜单键,但在4.x中没有,所以我们需要在创建时检查..
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.app_list);
checkMenu();
//other stuff
}
@SuppressLint("NewApi")
public void checkMenu() {
boolean hasMenu = ViewConfiguration.get(this).hasPermanentMenuKey();
if (!hasMenu) {
try {
getWindow().addFlags(WindowManager.LayoutParams.class.getField( "FLAG_NEEDS_MENU_KEY").getInt(null));
} catch (NoSuchFieldException e) {
e.printStackTrace();
} catch (IllegalAccessException e) {
e.printStackTrace();
}
}
}