마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

navigation Drawer 스택(fragment)관리 하는 방법(삭제하는 방법)

0 추천
네비게이션 드로워 사용중인데요
1. 메인화면을 fragment 사용해서 처음에 뿌려줍니다.
2. 메뉴를 사용하여 fragment.replace+addtobackstack를 이용하여 메뉴별 화면을 교체해줍니다.
<스택 : 메인, 메뉴1>
3. 이후 메뉴1로 접속 후 백키 사용 시 메뉴1이 삭제되고 메인메뉴가 보입니다.
<스택 : 메인>
4. 메뉴1 접속 중 메뉴2 접속 시 가장 상위 스택이 메뉴2로 교체되고 메인메뉴는 그대로 있습니다.
<스택 : 메인, 메뉴2>

원하는 것은 백키를 계속했을 때 결국 메인메뉴만 나오게 되고, 이후 종료하는 것 입니다.

메뉴2 클릭 시
 FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();
               transaction.replace(R.id.container, new Setting(), "Setting");
                transaction.addToBackStack(null);
                transaction.commit();

이런식으로 전달하는데 계속 쌓이기만하네요, 이전 프래그먼트를 모두 삭제하고 setting()만 보내줄 수는 없나요?
sj6071 (620 포인트) 님이 2018년 1월 5일 질문

1개의 답변

0 추천

질문이 back stack을 최대 2개까지로 제한 하려는걸로 이해가 되는데요,

다음과 같이 back stack의 크기가 0일때만 back stack을 사용하면 되지 않을까요?

FragmentManager     fm = getFragmentManager();
FragmentTransaction transaction = getSupportFragmentManager().beginTransaction();

transaction.replace(R.id.container, new Setting(), "Setting");
	
if (fm.getBackStackEntryCount() == 0)
	transaction.addToBackStack(null);
	
transaction.commit();

 

디자이너정 (42,810 포인트) 님이 2018년 1월 7일 답변
...