1

탭이있는 응용 프로그램 (예 : 2 탭)이 있습니다. 처음에는 ActivityGroup을 사용하여 개발되었습니다. 그러나 ActivityGroup에서 다중 창을 지원하지 않는다는 것을 깨닫고 나는 조각을 사용하기로 결정했습니다. 문제가 발생하기 전에 응용 프로그램에 대해 간단히 설명하겠습니다.조각 탭 변경시보기 유지

그래서, 이것은 예전 활동 그룹 기반 응용 프로그램의 작업 패턴 인 탭 응용 프로그램

TabA---> Activity1---> Activity2---> Activity3 

TabB---> Activity4---> Activity5----> Activity6 

전에 말했듯이.

지금 파편이 각 단편이 초기 하중의 데이터 서버에 연결

FragmentActivity---> TabAFragment---> FragmentA1---> FragmentA2 
       | 
       ---> TabBFragment---> FragmentB1---> FragmentB2 

아래와 같이 무언가로 변경할 것이다.

트랜잭션에서 추가 할 때마다 조각을 대체합니다.

FragmentTransaction ft = manager.beginTransaction(); 
ft.replace(R.id.realtabcontent, fragment); 
ft.commit(); 

관찰 무엇

I 하나만 활성을 갖는다 (FragmentActivity - 탭이 생성된다) 두 탭 프래그먼트. 모든 탭에 대해이 활동을 공유합니다. 예를 들어, tabB에서 fragmentB1을로드하면 뷰가 팽창되고 서버에서 데이터를 가져와 ListView에 표시합니다. 그런 다음 다른 tabA로 전환하고 fragmentA1을로드합니다. 여태까지는 그런대로 잘됐다. 이제 tabB로 돌아 가면 이전에로드 된 listView를보고 싶습니다. 그것은 정사각형 하나부터 시작됩니다.

이것은 파편에 대한 직접 경험입니다. 나는 약간의 연구를했다. 그러나 그것은 정말로 나의 것을 고치는 것을 도왔다.

어떻게로드 된 뷰를 유지할 수 있습니까?

의견이 있으십니까?

답변

0

안녕하세요. 모든 조각에도 상당히 새롭습니다. 그러나, 나는 비슷한 것을하고 있었고 현재의 조각을 백 스택에 추가해야 할 필요가 있다는 것을 알았다.

FragmentTransaction ft = manager.beginTransaction(); 
ft.replace(R.id.realtabcontent, fragment); 
ft.addToBackStack (null); 
ft.commit(); 

는 희망이 일부 사용이다 : 당신의 코드가되도록

ft.addToBackStack (null); 

이 라인은 당신의 COMIT 전에 갈 것입니다.