안녕하세요
구글링도 해보고 안펍 검색도 해보았는데 딱히 비슷한 경우의 질문이 없어
이렇게 질문 드립니다.
지금 UI구성을 여러 Fragment를 각각의 페이지로 해서
FrameLayout에 하나씩 쌓고 있는데요,
각각의 Fragment 모두 스택의 최상단에 쌓일때 onResume이 호출되는데요,
의문점은 또다른 Fragment가 최상단으로 올라왔을때,
기존에 최상단에 있었던 Fragment는 완전히 덮이는데도 onPause가 호출되지 않고,
이후, 위에 있던 Fragment들이 FragmentManager에 의해 지워져서 최상단으로 올라오게 된 경우에도
onResume이 호출되지 않네요.
뭔가 말이 복잡하네요..ㅋㅋㅋ
제가 여쭈어보고 싶은 점은,
Activity의 경우 화면에서 가려지게 되면 onPause, 다시 보이게 되면 onResume이 호출되었는데요,
Fragment의 경우 화면에서 가려짐(완전히)의 여부와 onPause, onResume 메소드의 호출과는 관련이 없나요?
현재 여러 탭마다 각각의 Fragment를 가져야해서 하나의 FragmentActivity가 FrameLayout을 갖고,
그 FrameLayout에 Fragment들을 탭 인덱스 별로 관리를 하고 있습니다.
안펍 선배님들의 따뜻한 관심과 조언 부탁드립니다..ㅎ
ODDM에서 안드로이드 개발자로 일하고 있습니다.
이제 1년 정도 되었네요.
선배님들이 좋은 정보 공유해주시고 저희 후배들에게 많은 가르침을 주시는 점
항상 감사하게 생각하고 있습니다.
서로가 서로에게 도움이 되는 그런 환경이 계속 발전해나갔으면 좋겠습니다.
대한민국 개발자 화이팅!
replace 가 아닌 add 를 계속 하면 현재의 fragment 아래쪽에 새로운 fragment가 말 그대로 add 됩니다. 그러니 화면에 보이지 않길 원하는 fragment는 hidden 시켜주는게 맞겠지요. hide & show 메소드로 상태관리를 하면서 onHiddenChanged 의 isHidden 값을 이용하면 될겁니다. 최초 add시에는 onHiddenChanged 를 타지 않지만 hide 가 호출될때 isHidden = true 가 되고 다시 보여질 때는 false 가 되겠지요. 원하시는 답변이 됐으면 하네요.




onHiddenChanged(boolean hidden) 메소드를 이용해보시길