Fragment란?
하나의 화면 안에 들어가는 부분화면
- 액티비티처럼 독립적으로 동작, 뷰와는 다름
- 프래그먼트로 동작하려면 activity 위에 올라가 있어야한다!!
- 프래그먼트매니저가 프래그먼트들을 관리한다
- 액티비티와 프래그먼트 간 데이터 전달 : 메서드 만들어서 호출 (인텐트x)
ex) Fragment1의 btn1을 눌러서 Fragment2로 넘어가고 싶을때
액티비티에 frag교체하는 함수를 만들고
onClickListener을 Frag1에 넣고 함수 호출
Fragment의 LifeCycle
- onAttach(Activity) : 프래그먼트가 액티비티와 연결될때 호출됨
- onCreate(Bundle) : 프래그먼트가 초기화될때 호출
- onCreateView : 프래그먼트와 관련되는 뷰 계층 만들어서 반환
- onActivityCreated(Bundle) : 프래그먼트의 연결된 액티비티가 onCreate메서드의 작업을 완료했을때 호출
- onDestroyView() : 프래그먼트와 관련된 뷰 리소스를 해제할 수 있도록 호출됨
- onDetach() : 프래그먼트가 액티비티와 연결을 끊기 바로전에 호출
cf) 액티비티는 객체가 만들어지는 시점에 onCreate호출되지만 프래그먼트는 액티비티에 올라가는 시점부터 프래그먼트로 동작하므로 항상 onAttach가 먼저 호출됨