子のfragmentのライフサイクルが期待しない動作をしている
ViewPager
の持っているFragment
から子Fragment
を乗せた場合に親のonActivityCreated()
がローテートを切り替える都度複数回コールされてしまいます。
構成は以下のような感じです
Activity
→ViewPager
→FragmentA
→FragmentB
→FragmentC
@Override
以下FragmentB抜粋
public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) {
(省略)
final FragmentManager fm = getFragmentManager();
final FragmentTransaction ft = fm.beginTransaction();
final Fragment fragment = fm.findFragmentByTag("FRAGMENT_C");
if (savedInstanceState == null) {
ft.replace(R.id.c_fragment, CFragment.getInstance(), "FRAGMENT_C").commit();
}
return view;
}
以下のようなコードです。
どうしたら回避できるでしょうか?
FragmentCを追加する一連のコードを削除した場合FragmentBのライフサイクルは通常通り動いています。