私のアプリでは私が持っている:
- ActionBarActivity A
- ツールバー1で断片1
- フラグメント2とツールバー2
ActionBarActivity Aはフラグメント1を示します(これは、ActivityのsetSupportActionBar()メソッドを使用してtoolbar1をアクションバーとして設定します)。
ボタンを押すと、フラグメント2(FragmentTransationのadd()メソッドを使用)が表示され、Fragment2はツールバー2をsetSupportActionBar()を使用してアクションバーとして設定します。
バックを押すとバックスタックがポップされ、Fragment1が再び表示されます。ここでは、toolbar1を再びアクションバーとして設定します。
これを達成する最も簡単な方法は何ですか? (うまくいけば、どのフラグメントが表示されているかを理解したり、各フラグメントからツールバーを設定したりすることなく、
回答:
回答№1は0つかいます onBackStackChangedListener
getSupportFragmentManager().addOnBackStackChangedListener(new FragmentManager.OnBackStackChangedListener() {
@Override public void onBackStackChanged() {
//get the fragment.
if (fragment instanceof BaseFragment) {
//set action bar
setActionBar(((BaseFragment)fragment).getActionBar());
}
}
});