Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

재훈재훈

프래그먼트(Fragment) 본문

Computer Engineering/Android

프래그먼트(Fragment)

jaehoonx2 2018. 4. 9. 18:18



프래그먼트

하나의 화면을 여러 부분으로 나누어 보여주거나 각각의 부분 화면 단위로 바꾸어 보여주고 싶은 경우에 사용한다.

사용자에게 보여주어야 할 화면(액티비티)이 많아질 경우 코드가 복잡해질 가능성이 있다.

프래그먼트는 이런 문제점을 해결하기 위해 각 부분 화면의 코드를 분리시킨 것이다.

즉 프래그먼트의 목적은 분할된 화면들을 독립적으로 구성하고 그 상태를 관리하는 데 있다.

액티비티와 비슷한 점이 많지만, 액티비티와 다른 점은 바로, 프래그먼트는 항상 액티비티 위에 올라가 있어야 한다는 것이다.

액티비티 위에 올라가 있지 않은 프래그먼트는 정상적으로 동작하지 않는다.


액티비티는 어플리케이션 구성 요소 중 하나이다. 한 액티비티 당 한 화면을 구성하고 있으며 액티비티 간 상호작용을 위해서는 액티비티 매니저(안드로이드 시스템)를 통해 인텐트를 날리고 받고 해야 한다.

프래그먼트 또한 액티비티와 비슷한 매커니즘을 갖고 있다. 그러나 항상 액티비티 위에 있어야 하므로 액티비티 매니저 역할을 프래그먼트 매니저(액티비티)가, 프래그먼트 간 상호작용할 때에는 메소드가 인텐트 역할을 맡는다.



Activtiy A, B 각각 프래그먼트들을 포함하고 있다



프래그먼트 매니저

프래그먼트를 다루기 위해 액티비티에서 호출한다. getFragmentManager() 메서드 호출을 통해 매니저 객체를 참조한다.

getFragmentManager() 와 getSupportFragmentManager() 두 종류가 있는데 두 개 모두 동일한 기능을 수행하는 FragmentManager() 객체를 리턴한다.

그러나 한가지 차이점이 있는데, 후자의 경우, 안드로이드 이전 버전들에서도 프래그먼트르 사용할 수 있도록 만든 appcompat_v7 라이브러리 프로젝트에서 지원하는 기능으로 이 메서드를 사용하길 권장한다.

그리고 한번 특정 메소드를 사용했으면 통일성을 유지하여야 한다. 이것 썼다 저것 썼다 하면 에러가 발생하게 된다.