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 に答える