2017-12-27 76 views
1

안녕하세요, 여러 조각 저장소 및 재사용에 붙어했습니다.조각 저장 및 재사용 : TabView로 여러 자식 조각

  • 내 schenario

I 가지고 one Activity 및 탭 아래 그림과 같은 2-4 하위 단편을 갖는 IN (viewpager 단지 단편 변화없이) 3 Tabs.

그래서 활동을 열 때.
1) 탭 1로드 및 표시 F1 조각.
2) Tab2을 누르고 표시 F1 조각을 표시하십시오.
3) F1에서 버튼을 탭하고 Tab2의 F2 단편으로 이동
4) 다시 F2에서 버튼을 누르고 Tab2의 F3 단편으로 이동하십시오.
5) 이제 Tab3을 탭하고 F1 프래그먼트를 엽니 다. 내가 TAB2를 누를 때 가기 backstack 널 (null)와 큰 작업

이 5

fragmentTransaction.addToBackStack(null); 

알고 있지만,

6) 항상 F1 조각을 보여줍니다. 내가 아래 스 니펫과 같은 활동을 관리하기 때문에.

  • switch (selected) { 
         case 0: 
          showFragment(TAB1.newInstance("", ""), TAG_HOME); 
          break; 
         case 1: 
          showFragment(TAB2.newInstance("", ""), TAG_FAV); 
          break; 
         case 2: 
          showFragment(TAB3.newInstance("", ""), TAG_ADD); 
          break; 
    } 
    

    내가 무엇이 필요.

6)은 I와 같은, 그것은 I 단편은 단편 Opened F3 되었음 TAB2에 last time에서 becase F3 표시 I은 TAB2을 탭 가정해야한다.

스토어 탭 현명한 조각 백 스트랩을 처리하는 방법.

긍정 또한 필요 추천 단계 (OnBackpress) 나 탭 2 F1에서 오전

suppouse 아래 -> F2 -> 다시 눌러 F3 후 F3
-> F2 (backpress) -> F1 (backpress) - > 가까운 활동

enter image description here

답변

1

당신은 Stack of fragment in Hashmap를 저장하고 탭을 변경하면 검색 할 수 있습니다.

HashMap<String, Stack<Fragment>> mStacks = new HashMap<String, Stack<Fragment>>(); 
mStacks.put(AppConstants.TAB_A, new Stack<Fragment>()); 
mStacks.put(AppConstants.TAB_B, new Stack<Fragment>()); 
mStacks.put(AppConstants.TAB_C, new Stack<Fragment>()); 

동안

mStacks.get(tag).push(fragment); 

작업 데모 팝 조각

mStacks.get(mCurrentTab).pop(); 

동안 푸시 조각 - 내 시간을 절약하기 위해 Github

+0

OMG .. 거대한 덕분에.Upvote 자격. –