본문 바로가기

전생의 기억/안드로이드

프래그먼트란(Fragment)

프래그먼트는 허니콤 버전부터 공개되었으며, 태블릿에 적합한 UI를 설계하기 위해서 고안된 UI입니다.

태블릿과 같은 큰 화면을 효율적으로 사용하기 위해서는, 한 화면에 많은 양의 데이터를 보여줄 수 있어야 하는데, 프래그먼트로 이를 해결할 수 있습니다.

프래그먼트는 뷰 개념과 엑티비티 개념의 중간에 있다고 말할 수 있는데요.

프레그먼트는 ImageView나 TextView와 같은 대표적인 뷰 처럼, 레이아웃에 뷰 형태로 들어갈 수 있다는 특징이 있습니다.

이와 동시에, 생명주기가 있기 때문에, 엑티비티와 비슷하게 상태가 계속 변할 수 있습니다.

 

<프래그먼트 생명주기>

 

onAttach(Activity)
프래그먼트가 액티비티 레이아웃에 포함되었을 때 호출. 프래그먼트를 정적으로 배치했다면 액티비티가 시작될 때 같이 호출되며, 동적으로 추가할 때에는 프래그먼트를 레이아웃에 추가하는 순간 호출.


onCreate(Bundle)
프래그먼트가 최초로 생성될 때 호출.


onCreateView(LayoutInflater, ViewGroup, Bundle)
UI를 구성하는 뷰(View)를 반환합니다. UI를 가지지 않는 프래그먼트일 경우 null을 반환.


onStart()
프래그먼트가 화면에 표시될 때 호출됩니다. 아직 사용자와 상호작용은 할 수 없는 상태입니다.


onResume()
프래그먼트가 사용자와 상호작용을 할 수 있게 되었을 때 호출. 즉, 프래그먼트가 완전히 화면에 표시된 상태.

onPause()
액티비티의 onPause()와 유사하게 프래그먼트가 사용자와 상호작용을 할 수 없게 될 때 호출. 프래그먼트가 아직 화면에 표시되고 있는 상태이나, 프래그먼트가 가려져 상호작용을 하지 못하는 상태.


onStop()
화면에서 보이지 않게 될 때 호출.


onDestroyView()
뷰의 현재 상태가 저장된 후 호출. 여기에서 저장된 뷰의 상태는 액티비티처럼 Bundle 로 저장되며, 저장된 뷰는 onCreateView()에서 다시 불러들일 수 있다


onDestroy()
프래그먼트가 사용되지 않을 때 호출


onDetach()
프래그먼트가 액티비티 레이아웃에서 제거될때 호출