Dev/Android

여러개의 Fragment 를 사용할때 해당 화면 감지하는 방법

healthyryu 2017. 12. 14. 11:02

여러개의 Fragment 를 사용할때 해당 화면 감지하는 방법


먼저 얘기하자면 setUserVisibleHint(Boolean bol) 을 사용해야 한다!!


기본적인 Fragment 를 사용할때 기본적인 라이프 사이클은 아래와 같다.


1. onAttach()

2. onCreate()

3. onCreateView()

4. onActivityCreated()

5. onStart()

6. onResume()

7. Activation

8. onPause()

9. onStop()

10. onDestroyView()

11. onDestroy()

12. onDetach()


순서는 그림과 같이 흘러간다. 


여기서 여러개의 Fragment 에서 내가 현재 화면에 온 Fragment 화면을 Detection 하기 위해서 setUserVisibleHint(Boolean) 이라는 함수를 사용한다. 메서드명과 같이 사용자가 해당 UI 를 볼때 시스템적으로 알려주기 위함이다. 그리고 이 함수는 해당 프래그먼트가 실행되면 가장 먼저 실행 된다.

내가 테스트해본 바로는 onAttach() 보다도 먼저 호출이 된다. 즉, 가장 먼저 호출된다고 보면 된다.


 테스트해본바로는 아래와 같이 로그가 찍혔다.

>> isVisibleToUser : false

>> isVisibleToUser : true

>> onAttach

>> onCreate

>> onCreateView

>> onResume


반응형