2016-08-17 38 views

回答

1

我完全建議你檢查this documentation你建立在他們面前。

如果你管理你的片段進行溝通。然後你可以使用這個簡單的方法。

private void changeFragment(Fragment frag, boolean saveInBackstack) { 
    String backStateName = ((Object) frag).getClass().getName(); 

    try { 
     FragmentManager manager = getSupportFragmentManager(); 

     if (manager.findFragmentByTag(backStateName) == null) { 
      //fragment not in back stack, create it. 
      FragmentTransaction transaction = manager.beginTransaction(); 
      transaction.replace(R.id.container, frag, backStateName); 

      if (saveInBackstack) { 
       Log.d(TAG, "Change Fragment: addToBackTack " + backStateName); 
       transaction.addToBackStack(backStateName); 
      } else { 
       Log.d(TAG, "Change Fragment: NO addToBackTack"); 
      } 

      transaction.commit(); 
     } else { 
      manager.popBackStack(); 
     } 
    } catch (IllegalStateException exception) { 
     Log.w(TAG, "Unable to commit fragment, could be activity as been killed in 
    } 
}