2014-12-18 6 views
0

이것은 약간의 작업이되어야하지만 어떻게 든 그것을 수행하는 데 실패 할 수 있습니다.프래그먼트 트랜잭션 쇼에 숨겨진 프래그먼트가 표시되지 않습니다.

1 단계 :

숨기기 조각을 또 다른 하나를 추가 :

getSupportFragmentManager().beginTransaction().add(R.id.layFragment, Fragment1.newInstance(), "FragmentTag1").commit(); 

2 단계는 조각을 추가합니다.

번째 단편을 제거하고, 첫 번째 다시

getSupportFragmentManager().beginTransaction().remove(getSupportFragmentManager().findFragmentByTag("FragmentTag2")).commit(); 
getSupportFragmentManager().beginTransaction().show(getSupportFragmentManager().findFragmentByTag("FragmentTag1")).commit(); 

단계 1and 2 작업 벌금을 도시한다 : 두 번째 화면

getSupportFragmentManager().beginTransaction().hide(getSupportFragmentManager().findFragmentByTag("FragmentTag1")).commit(); 

getSupportFragmentManager().beginTransaction().add(R.id.layFragment, Fragment2.newInstance()),"FragmentTag2").commit(); 

단계 3에 표시한다. 3 단계에서 Fragment2는 제거되지만 Fragment1은 현재 숨겨져 있어도 다시 표시되지 않습니다.

아이디어가 있으십니까?

답변

0

추가 그냥 전화 & 표시를 제거 다시.

0

처음으로 조각을 추가해야 할 때 다음 번에 조각을 원하는 조각으로 바꿉니다.

getSupportFragmentManager().beginTransaction() 
    .replace(int containerViewId, Fragment fragment, String tag) 

가 컨테이너에 추가 된 기존의 단편을 교체 대신 숨기기 &를 호출

FragmentTransaction ft = getFragmentManager() 
      .beginTransaction(); 
ft.replace(R.id.details, your fragment instance); 
ft.addToBacksStack(null); 
ft.commit(); 
+0

좀 자세히 설명해 주시겠습니까? – Alin