2012-12-09 9 views
15

新しいネストされたフラグメント機能を実装していて、問題に遭遇しました。断片(B)、この断片(B)それらの各々が断片である3ページを持つページャ・アダプタは、(Cを含む 主活動(): 私のビューは、これは基本的に)も同様です。 以前は新しいgetchildfragmentmangerにこれは実行できませんでしたが、完全に動作します。 しかし、1つの問題が発生した、私はフラグメントCがオプションメニューを設定に参加できるようにしたい。 私はコンテナであるフラグメントB(からメニューを投入しようとした場合、私は疲れても、私のC断片とオーバーライドのそれぞれにonActivityCreated方法でsetHasOptionsMenu(true)を入れてonCreateOptionsMenuが、何も起こりません... ページャアダプタ)私はメニュー項目を変更することができます...Android - NestedFragmentsがオプションメニューの設定に参加しています

どのような考えですか?

ありがとうございました。

答えて

11

ソースコードの私の読み取りから、FragmentManagerActivityの実装は唯一FragmentManagerインスタンスを、オプションメニュー/アクションバーに追加しないと子供のためのルートFragmentManagerで動作していることが表示されます。

フラグメントBは、ViewPagerの内容の代わりにオプションメニュー/アクションバーを管理し、ページャーに表示されているページと表示されていないページに基づいてオプションメニュー/アクションバーにあるものを変更する必要があります。

+0

ハイテクCommonsWareは、あなたの高速再生のためのおかげで、それは私がやってしまったものだが、私はより多くのカプセル化されたソリューションを期待していました。 – senior

+0

はい.. !!私もこの問題に悩まされていました..そして、私は何のマークが何を言ったのですか?ありがとうマーク –

+0

あなたの回避策はどのように働いているのでしょうか?私はすべてを試して、それはまだ厄介です.. – Zyoo

16

はい、可能です。

アンドロイド4.2またはサポートライブラリのリビジョン11のネストされたフラグメントは、いつでもの間にsetHasOptionsMenu(true)に電話する必要があるので、オプションメニューの入力に参加します。

ただし、ActionBarSherlockを使用している場合は、親フラグメントonCreateOptionsMenu()ネストされたフラグメントメソッドonCreateOptionsMenu()から手動で呼び出す必要があります。

更新issue

+0

それについては確かですか?私はActionBarSherlockを使用していますが、私の知る限りでは、デバイスがICSを上回っているときにABSが通常のActionBarを使用しています。私はネストされたフラグメントを使用しており、リビジョン11をサポートしていますが、メニューは作成されていません。 – tasomaniac

+0

@tasomaniacはい、確信しています。そして、あなたはいつもABSとアンドロイドの源を見ることができます。問題はアクションバーにはなく、ABSがonCreateOptionsPanel()をFragmentActivityからネストされたフラグメントではなくフラグメントに呼び出す方法の問題があります。 – kreker

+0

ActionBarSherlockを使用せず、Android 4.0でコンパイルしてサポートライブラリを使用すると、ネストされたフラグメントでonCreateOptionsMenuを使用できますか? – tasomaniac

関連する問題