2017-11-07 3 views
0

fragmentsをマネージャーに保存します。私は私のonBackfragmentバックスタックマネージャから削除されてクリックした場合、今バックスタックからフラグメントを削除しないでください

FragmentTransaction fragmentTransaction = getSupportFragmentManager() 
       .beginTransaction(); 
     fragmentTransaction.setCustomAnimations(R.anim.slide_in_right_frag, R.anim.slide_out_left_frag, R.anim.slide_in_left, R.anim.slide_out_right); 

     FragmentManager manager = getSupportFragmentManager(); 
     manager.findFragmentByTag(title); 

     if (manager.findFragmentByTag(title) == null) { 
      fragmentTransaction.replace(R.id.fragment_container, fragment, title); 
      if (addToBackStack) { 
       fragmentTransaction.addToBackStack(null); 
      } 
      fragmentTransaction.commit(); 
     } else { 
      fragmentTransaction.show(manager.findFragmentByTag(title)).commit(); 
     } 

: これはコードです。私はこの断片を元に戻してクリックしても、その断片を元に戻したいと思っています。 これが私のやり方です:

frag1 -> clickOnNext -> frag2 -> put some data in edittexts -> 
clickOnBack -> frag1 -> clickOnNext -> frag2(frag has data from first time). 

は今、常にfragment2の新しいインスタンスを取得します。

+0

オーバーライドメソッドonSaveInstanceState()でフラグメントの状態を保存できます。 look https://stackoverflow.com/questions/11353075/how-can-i-maintain-fragment-state-when-added-to-the-back-stack –

答えて

0

代わりfragmentTransaction.replace(R.id.fragment_container, fragment, title);

の使用fragmentTransaction.add(R.id.fragment_container, fragment, title);そして、あなたの活動onBackPressedイベントでフラグメントの表示/隠しを扱います。

関連する問題