안드로이드 타블렛 애플리케이션의 경우 2 개의 프래그먼트를 사용합니다. 하나는 화면의 왼쪽에, 다른 하나는 오른쪽에 있습니다. 오른쪽 단편에서 버튼을 클릭하면 다른 단편이 오른쪽 단편 상단에 추가됩니다. 이 단편은 백 스택에 추가됩니다.안드로이드 백 스택에서 하나의 특정 프래그먼트 삭제
FragmentTransaction ft = getFragmentManager().beginTransaction();
ft.add(R.id.fragmentlayout, fragment2);
ft.addToBackStack("Fragment2");
ft.commit();
가기 backstack 해주기이다
[단편 1] -> 좌측의 [단편 2
는 동일한 좌측 단편 위에 단편을 여는 버튼 (인 fragment2로) 그리고 그것을 백 스택에 추가합니다. 단편 2에서
그 단편을 닫기위한 버튼이다> [단편 3] -> [2 단편 - 상기 가기 backstack 해주기
[단편 1]이다.
getFragmentManager().popBackStack("Fragment2", FragmentManager.POP_BACK_STACK_INCLUSIVE);
문제는 단지 [조각 2]를 닫고 싶을 때 [조각 3]도 파괴됩니다. 나는
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.remove(fragment2).commit();
를 호출하여 조각을 수동으로 실시 제거 할 수 있습니다하지만 가기 backstack는
가[조각 1] 남아 -> [(유령) 조각 2] -> [단편 3]
그래서 당신이 필요로하는 한 번 더 누르면 응용 프로그램을 닫을 수 있습니다.
[조각 2] 만 백 스택에서 제거하고 [조각 3]을 화면에 남겨 둘 수 있습니까?
AFAIK, 불가능합니다. 이것이 스택이라고하는 이유입니다. –
빈 조각으로 대체하여 이전 조각을 제거해야합니다. 그러면 단편 3을 떠날 수 있습니다. – GrIsHu