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

fragment Stack관리

0 추천
Fragment 를 Activity 사용과 같이 관리할 수 있을까요?

 

Activity는, Intent를 호출하면. Stack에 쌓이듯 되어있는데,

Fragment는 replace를 하니 stack에 쌓이지 않는 것 같아서요.

 

메인Fragment가 아닐 경우 메인 Fragment를 호출해서 다시 보여주곤하는데,

stack에 쌓이듯 관리할 수 있는 방법이 있을까요?

ArrayList에 담기라도 해야되는지..
개발자초심 (21,220 포인트) 님이 2016년 2월 29일 질문

1개의 답변

0 추천
Fragment도 스택이 있어서 액티비티 스택과 동일하게 구현이 가능합니다.

http://mydevromance.tistory.com/34

참고해보세요.
캬옹이 (37,920 포인트) 님이 2016년 2월 29일 답변
답변 감사합니다.
혹시 addToBackStack 에서 다들 null을 넣던데, 이 과정에서 이전 Fragment를 넣으면 관리가 될까요?
스택의 count가 0이 나오니 원하는 구성을 갖추기가 어렵네요..
null을 넣는것이 맞습니다.

아래는 Android Developer 사이트에서 퍼온 내용입니다.
잘안되면 Developer 사이트에서 Fragment를 찾아서 보세요~

액티비티 내의 프래그먼트를 관리하려면 FragmentManager를 사용해야 합니다. 이것을 가져오려면 액티비티에서 getFragmentManager()를 호출하십시오.

FragmentManager를 가지고 할 수 있는 여러 가지 일 중에 예를 들면 다음과 같습니다.

액티비티 내에 존재하는 프래그먼트를 findFragmentById()로 가져오기(액티비티 레이아웃 내에서 UI를 제공하는 프래그먼트의 경우) 또는 findFragmentByTag()로 가져오기(UI를 제공하거나 하지 않는 프래그먼트의 경우).
백 스택에서 프래그먼트를 popBackStack()을 사용하여 튀어나오게 하기(사용자가 내린 뒤로 명령을 시뮬레이트함).
백 스택에 변경 내용이 있는지 알아보기 위해 addOnBackStackChangedListener()로 수신기 등록하기.
이와 같은 메서드와 그 외 다른 메서드에 대한 자세한 정보는 FragmentManager 클래스 관련 문서를 참조하십시오.

이전 섹션에서 설명한 바와 같이 FragmentManager를 사용해서도 FragmentTransaction 을 열 수 있습니다. 이렇게 하면 프래그먼트 추가 및 제거 등 트랜잭션을 수행할 수 있게 해줍니다.
답변 감사합니다.
addToBackStack 을 하는 위치에 문제가 있었네요.
onBackPressed 에서 popBackStack()을 하긴하는데, 이전 Fragment의 화면이 보이지 않고 빈 흰색바탕만 나와 잠시 보류 해두었습니다..
감사합니다.
...