7

我有一个运行良好的应用程序,但突然一些运行 4.0 设备(不是全部)的用户声称菜单无法正常工作......

我有一个菜单,其中包含超过 6 个选项或默认情况下 Android 显示的任何内容。用户抱怨说,当他们单击显示剩余选项的“更多”按钮时,会出现显示所有其他选项的弹出列表,但他们无法单击任何选项。弹出的列表不接受除关闭它的后退按钮之外的任何用户操作。

有谁知道为什么会这样?我无法在我拥有的任何设备或我拥有的任何模拟器上重现该错误......我假设我正在处理一些碎片问题或操作系统更改问题,因为代码尽可能基本。

有人有想法么?菜单是否以某种可能导致这种情况发生的方式发生了显着变化?

4

1 回答 1

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();
        }
        }
    }
于 2014-01-15T10:43:23.050 回答