Android 호환성 라이브러리를 사용하여 조각을 구현하고 조각에 다른 조각을 발사하는 버튼이 포함되도록 레이아웃 샘플을 확장했습니다.
왼쪽의 선택 창에는 5 개의 선택 가능한 항목이 있습니다 A B C D E
.
각 FragmentTransaction:replace
세부 정보 창에서을 통해 조각을로드합니다.a b c d e
이제 세부 정보 창에도 e
다른 조각을로드하는 버튼이 포함되도록 조각 을 확장했습니다 e1
. e
다음과 같이 프래그먼트 의 onClick 메소드 에서이 작업을 수행했습니다 .
FragmentTransaction ft = getActivity().getSupportFragmentManager().beginTransaction();
ft.replace(R.id.details_frag, newFrag);
ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_OPEN);
ft.addToBackStack(null);
ft.commit();
다음을 선택하면
E - e - e1 - D - E
그런 다음 조각 e
이 세부 정보 창에 있습니다. 이것은 괜찮고 내가 원하는 것입니다. 그러나이 back
시점에서 버튼을 누르면 아무것도하지 않습니다. e1
여전히 스택에 있기 때문에 두 번 클릭해야 합니다. 또한 클릭 한 후 onCreateView에서 null 포인터 예외가 발생했습니다.
이 문제를 '해결'하기 위해 A B C D E
선택 될 때마다 다음을 추가했습니다 .
FragmentManager fm = getActivity().getSupportFragmentManager();
for(int i = 0; i < fm.getBackStackEntryCount(); ++i) {
fm.popBackStack();
}
이것이 올바른 해결책인지 아니면 다른 것을 해야하는지 궁금하십니까?