私はここで新しいので、すべてを一流にフォーマットしなかった場合はお詫びします。私もメニューの貢献とFragmentsに関して同様の質問をしました。これが私のインスタンスで行ったことです...
私はFragmentActivityホスティングListFragmentと、選択されたリストアイテムの詳細を含む追加のものを持っています-Fragmentかなり典型的なタブレット構成。この追加の詳細Fragmentは、リストアイテムが選択されるまで追加されません...リストアイテムを選択するときに、 sメニューアイテムがホスティングアクションバーListFragmentに寄与しないようにします。FragmentActivity(UIの観点から、ユーザーの主な焦点は新しく追加されたフラグメントです。以前の状態に戻すには、選択したアイテムの選択を解除します。)ListFragment再利用性を確保するために他のフラグメントについて知る必要がないためonPrepareOptionsMenu(..)、レベルはFragmentActivity私にとって正しい前進でした。
このコードスニペットをホスティングに追加してFragmentActivity、必要な動作をすばやく取得します。
@Override
public boolean onPrepareOptionsMenu(Menu menu) {
if (getResources().getConfiguration().orientation == Configuration.ORIENTATION_PORTRAIT) {
// 'Find' the menu items that should not be displayed - each Fragment's menu has been contributed at this point.
menu.findItem(id.sync).setVisible(false);
}
return super.onPrepareOptionsMenu(menu);
}
この方法は、フラグメントが再利用可能なままである(最初に設計されたとおりに貢献している)が、ホストFragmentActivityが許可された役割の1つであるアクティビティUIを操作できることを意味します。
それがお役に立てば幸いです。