2

我有一个包含子菜单的上下文菜单,每当我点击该项目以打开子菜单时,子菜单就会打开/关闭并快速重新打开。这很烦人,但更成问题的是,我的一些用户根本看不到子菜单,它会打开/关闭,仅此而已!

现在经过试验,我发现一旦我释放该项目,长按该项目实际上可以工作:子菜单正确打开并保持打开状态!

所以我决定构建一个非常基本的项目,相信我的应用程序有一个错误,使用向导创建了一个新应用程序,一个活动,一个我 registerForContextMenu 的文本和一个带有简单子菜单的上下文菜单。

问题立即重现!!!有没有人遇到同样的问题,可以告诉我我做错了什么?我相信我遵循了文档和示例,但是我在任何地方都找不到有关此问题的任何信息!!!

我已经在 Google 群组上发布了这个问题,并在 Android 项目上报告了一个问题,但到目前为止没有人回应,这里是两个链接,其中包括测试项目(不确定如何在此处附加文件?)。

https://code.google.com/p/android/issues/detail?id=53239&can=4&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars

https://groups.google.com/forum/?fromgroups=#!topic/android-developers/SLteohmgyy0

4

1 回答 1

2

为了解决这个问题,我不得不去掉上下文菜单中的任何子菜单,而是在项目选择上打开另一个上下文菜单。

以下消除了闪烁并确保子菜单保持打开状态。不过,必须使用备用隐藏视图来打开新的上下文菜单。

    if (id == R.id.menu_item_for_sub_menu)
    {
        new Handler().postDelayed(new Runnable()
        {
            @Override
            public void run() 
            {
                View v = vg.findViewById(R.id.fake_view_for_context);
                if (v != null)
                {
                    registerForContextMenu(v);
                    openContextMenu(v);
                    unregisterForContextMenu(v);
                }
            }
        }, 0);
    }
于 2013-04-29T13:32:22.997 回答