본문 바로가기
인간적인 개발자/공부

[안드로이드] Fragment_1

by baeflower 2015. 6. 5.

*** 공홈 번역!

http://developer.android.com/guide/components/fragments.html#Design



Fragment


** Fragment 란?

activity 안에서 사용자 인터페이스의 한 부분 또는 동작

하나의 activity 안에 여러개의 fragment 를 합칠 수 있고 여러개의 activity 에서 동일한 fragment 를 재사용할 수 도 있다.

자신만의 라이프 사이클을 가지는 activity 의 모듈러 섹션처럼 생각해도 되며, 자신만의 input 이벤트를 받고 activity 가 사용중인 동안에 input 이벤트들을 추가하거나 제거할 수도 있다 (다른 activity 들에서 다시 사용할 수 있는 서브 activity 의 종류 같은?!) 


fragment 는 항상 어떠한 activity 안에 들어가 있어야 하며, 주인 activity 의 라이프 사이클은 fragment 라이프 사이클에 직접적으로 영향을 준다. 예를 들어, activity 가 멈추면(pause) 그 안에 있는 모든 fragment 들도 멈추고, activity 가 없어지면(destroy) 그 안에 모든 fragment 들도 없어진다. 그러나 activity 가 살아있는 도중에는 (running, resume 상태) 각각의 fragment 들을 독립적으로 수정할 수 있다.(걔네를 추가 또는 삭제하는 등)

Fragment transaction 을 수행하면, 해당하는 activity 에 의해 관리되는 back stack 에 그 fragment 를 추가할 수 있다(back stack - 뒤로가기 stack). activity 안에 각각의 back stack 엔트리는 fragment transaction 이 수행 되었던 기록이다. 그 back stack 은 사용자들이 fragment transaction (navigation backwards?) 을 뒤로 돌아갈 수 있게 해준다. 어떻게? Back button 을 눌렀을 때! - 


activity 레이아웃에 fragment 를 추가할 때, 그 activity 의 view 계층 안에 ViewGroup 이 하나 생기고, 그 fragment 는 그 자신의 view 레이아웃을 정의한다. (activity 안에 ViewGroup 안에 fragment 를 추가한다는 말인듯?). activity 의 레이아웃 파일 안에 fragment 를 선언함으로서 activity 레이아웃 안에 <fragment> 요소를 넣을 수 있다. 또는 application 코드로부터 존재하는 ViewGroup 에 fragment 를 추가할 수 있다. (레이아웃에서도 넣을 수 있고 자바에서도 넣을 수 있다는 말인데 이렇게 길게..). 그러나, fragment 가 반드시 activity 레이아웃의 한 부분이 되야 하는 것은 아니다. 그 자신의 UI 없이 activity 의 보이지 않는 worker 로서 fragment 를 사용할 수도 있다(fragment 가 꼭보이는 레이아웃이 없더라도 activity 의 보이지 않는 일꾼으로서 작동할 수도 있다는 말인듯).



 


 



'인간적인 개발자 > 공부' 카테고리의 다른 글

IaaS, PaaS, SaaS 용어 정리  (0) 2022.02.22
[안드로이드] Fragment_3  (1) 2015.06.05
[안드로이드] Fragment_2  (0) 2015.06.05
안드로이드 외부경로  (0) 2015.04.02

댓글