7

onPrepareOptionsMenu()が正常に動作するのに問題があります。私が何をしようとも、私はそれを呼び出すことができません。onPrepareOptionsMenuが呼び出されていません

私のアプリケーションのアーキテクチャは次のとおりです:私の主なアクティビティにはViewPagerを保持するFragmentがあり、これには4つの子Fragmentインスタンスがあります。現在、私はアクティビティの初期オプションメニューにonCreateOptionsMenu()を(正常に)設定していますが、それぞれのアクティブな子フラグメントに対応するいくつかの追加オプションを追加したいと思います。私の子供のフラグメント内

、私はsetHasOptionsMenu(true)onCreate()で呼び出されていることとがonActivityCreated()で呼び出されていることを確認作りました。主アクティビティでは、supportInvalidateOptionsMenu()が含まれているかどうかにかかわらず、子フラグメントがインスタンス化された後に、onCreateOptionsMenu()が1回呼び出されます。ポケベルのフラグメントが置き換えられるたびに、それは後で再び呼び出されます。

onPrepareOptionsMenu()コードを親フラグメントとメインアクティビティに移動しようとしましたが、これは問題がネストされたフラグメントの使用に関連していないことを示しています。私はまた、onCreateOptionsMenu()メソッドをmainアクティビティから両方のフラグメントに移動してみました。ここでは、呼び出されません。

ここで何が起こっているのか誰かが知っていれば、私はこれで2日間ここで取り残されているので、とても感謝しています。

UPDATE - 問題の内容を正確に把握しましたが、修正方法をまだ分かりません。私は4.2でテストしており、がアクティビティでonResume()の後に呼び出されたようです(onCreateOptionsMenu called after onResume on JB 4.2参照)。これは、フラグメントがonPrepareOptionsMenu()にコールできないと仮定しています。これは、メニューがインスタンス化されるまで存在しないためです。だから私はこれをどのように解決するのですか?

答えて

4

ActionBarSherlockの問題は、やや必然的に、githubのissueページをチェックする際に見落としていたものでした。基本的に、ネストされたフラグメントのオプションメニューの機能はまだ追加されていません。https://github.com/JakeWharton/ActionBarSherlock/issues/828を参照してください。私の解決策は、Watson.javaをコメント内の修正されたファイルの1つに置き換えることです。

+2

私は仕事の一日を保存しましたが、私の頭をこれで打ちました – slinden77

+0

@dmmhその問題の正しい解決策を得ましたか? –

+0

私のコメントにあります:) – slinden77

関連する問題