Study/Android

Fragment

Kostrian 2015. 1. 29. 11:34

인텐트와 같이 창이 하나 더 생기는거 말고 부드럽게 넘어갔으면 좋겠다고 생각이 들어 Fragment를 사용해 보았다.


Fragment는 하나의 FragmentActivity안에 여러개의 Fragment가 들어가 화면 전환을 부드럽게 해주는 도구(?)이다. 


그림과 같이 액티비티 하나 안에 여러개의 화면이 들어간다고 생각하면 된다. 물론 보여지는건 Fragment하나씩만이다.


Fragment의 Lifecycle은 onAttach - onCreate - onCreateView - onActivityCreated - onStart - onResume...등으로 이루어져 있다. Fragment또한 onCreate가 있기에 평소 Activity에 작업하던대로 여기에 작업을 하면 될거같지만 틀렸다. onCreate에서는 UI작업을 할수 없기에 처음 시작할때 변수 초기화 등을 하면 될거 같다. 그럼 UI작업은 어디서 할까?


Fragment의 UI작업은 onCreateView에서 이루어 진다. Activity의 onCreate의 기능을 Fragment에서는 나눠놨다고 생각할 수 있을거 같다.


Fragment를 사용하기 위해서는 Fragment 클래스들이 필요하다. 안드로이드 스튜디오에서 작업을 한다면 편리하게 추가할 수 있다.


 


위의 메뉴를 선택하면 아래의 창이 뜬다.


 

Fragment Name에는 원하는 Fragment의 이름을 적으면 되고 Fragment Layout Name에는 Fragment의 화면을 구성할 Layout의 이름을 적어주면 된다.


Fragment의 화면 전환은 FragmentTransaction을 이용하면 되는데 이는 다음기회에 다시 포스팅 하겠다.


Fragment를 사용하기 위해서는 MainActivity에서 FragmentActivity를 상속 받아야 하지만, 최신버전의 라이브러리에서는 ActionBarActivity에 FragmentActivity가 상속되어 있으므로 ActionBarActivity를 상속받고도 Fragment를 사용할수 있다.