マルチフラグメントアクティビティでオプションメニューを使用します

StackOverflow https://stackoverflow.com/questions/6831544

質問

私は持っています FragmentActivity ホストa FragmentStatePagerAdapter. 。ページャーには、ユーザーがリスト内のアイテムをスワイプできるように、同じフラグメントの複数のインスタンスが含まれています。目に見えるアイテムでのみ動作するオプションメニューをユーザーに提供できるようにしたいと思います。

たとえば、フラグメント内の画像ビューに表示される画像のリストがあります。ユーザーが画像を壁紙として設定できるようにするオプションメニュー項目が必要です。

私がこれを試してみるとき、いつ onPrepareOptionsMenu 呼び出されると、コードは複数のフラグメント(通常は電流 +次のフラグメント)で呼び出されます。アイテムが選択されている場合も同じです。これにより、間違った画像が壁紙として設定されます。

オプションメニューが現在表示されているフラグメント以上のトリガーを防ぐにはどうすればよいですか?

役に立ちましたか?

解決

私の解決策は、を使用することでした setOnPageChangeListener の方法 ViewPager どちらを追跡するために Fragment 現在、インデックスはに表示されていました onPageSelected 折り返し電話。あなたはまだ自分で初期インデックスを取得する必要がありますが、私の場合、これは些細なことでした

他のヒント

アクティビティのONOPTIONSITEMSELECTEDでオプションメニューのコールバックをインターセプトし、正しいフラグメントからアイテムを明示的に呼び出し、それを処理したことを示すために真であることを返します。

トリックは、メニューを入力する前に、各フラグメントのセタソプション(true | false)を変更することです。これはすでに私を助けてくれました

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top