Fragment


안드로이드에서 하나의 화면 단위는 Activity다. 그리고 Activity간 화면 전환을 하고싶다면 Intent 객체를 사용하면 된다. 그런데 Activity간 화면 전환은 시스템 단에서 이뤄지기 때문에 무겁다. 하나의 Activity 안에서 화면을 부분적으로 분할해서 사용하면 훨씬 가볍고 알차게 쓸 수 있지 않을까? 라는 아이디어에 착안해 나온 것이 Fragment다. 아래는 Activity간 화면 전환할 때의 동작 방식과 Fragment간 화면 전환할 때의 동작 방식을 나타낸 그림이다.

 

 

 

 

Fragment를 화면에 추가하는 방법


일관성을 갖추기 위해 Activity의 방식과 대부분 같다고 생각하면 된다. Activity가 하나의 XML 레이아웃 파일과 Activity Java 파일로 동작하는 것처럼 Fragment도 XML 레이아웃 파일과 Fragment Java 파일로 동작한다. Fragment를 위한 Java 소스는 Fragment 클래스를 상속하여 만들 수 있다.

 

Fragment 클래스의 주요 메서드

// 이 Fragment를 포함하는 Activity를 반환한다.
public final Activity getActivity() 

// 이 Fragment를 포함하는 Activity에서 Fragment 객체들과 의사소통하는 FragmentManager를 반환한다.
public final FragmentManager getFragmentManager()

// 이 Fragment를 포함하는 부모가 Fragment일 경우 리턴. 부모가 Activity이면 null을 반환한다.
public final Fragment getParentFragment()

// 이 Fragment의 ID를 반환한다.
public final int getId()