재훈재훈
프래그먼트(Fragment) 본문
프래그먼트
하나의 화면을 여러 부분으로 나누어 보여주거나 각각의 부분 화면 단위로 바꾸어 보여주고 싶은 경우에 사용한다.
사용자에게 보여주어야 할 화면(액티비티)이 많아질 경우 코드가 복잡해질 가능성이 있다.
프래그먼트는 이런 문제점을 해결하기 위해 각 부분 화면의 코드를 분리시킨 것이다.
즉 프래그먼트의 목적은 분할된 화면들을 독립적으로 구성하고 그 상태를 관리하는 데 있다.
액티비티와 비슷한 점이 많지만, 액티비티와 다른 점은 바로, 프래그먼트는 항상 액티비티 위에 올라가 있어야 한다는 것이다.
액티비티 위에 올라가 있지 않은 프래그먼트는 정상적으로 동작하지 않는다.
액티비티는 어플리케이션 구성 요소 중 하나이다. 한 액티비티 당 한 화면을 구성하고 있으며 액티비티 간 상호작용을 위해서는 액티비티 매니저(안드로이드 시스템)를 통해 인텐트를 날리고 받고 해야 한다.
프래그먼트 또한 액티비티와 비슷한 매커니즘을 갖고 있다. 그러나 항상 액티비티 위에 있어야 하므로 액티비티 매니저 역할을 프래그먼트 매니저(액티비티)가, 프래그먼트 간 상호작용할 때에는 메소드가 인텐트 역할을 맡는다.
Activtiy A, B 각각 프래그먼트들을 포함하고 있다
프래그먼트 매니저
프래그먼트를 다루기 위해 액티비티에서 호출한다. getFragmentManager() 메서드 호출을 통해 매니저 객체를 참조한다.
getFragmentManager() 와 getSupportFragmentManager() 두 종류가 있는데 두 개 모두 동일한 기능을 수행하는 FragmentManager() 객체를 리턴한다.
그러나 한가지 차이점이 있는데, 후자의 경우, 안드로이드 이전 버전들에서도 프래그먼트르 사용할 수 있도록 만든 appcompat_v7 라이브러리 프로젝트에서 지원하는 기능으로 이 메서드를 사용하길 권장한다.
그리고 한번 특정 메소드를 사용했으면 통일성을 유지하여야 한다. 이것 썼다 저것 썼다 하면 에러가 발생하게 된다.
'Computer Engineering > Android' 카테고리의 다른 글
FLAG_ACTIVITY_FORWARD_RESULT - 세번째 액티비티에서 첫번째 액티비티로 결과 전달하기 (0) | 2018.04.15 |
---|---|
고객 정보 입력 화면 만들기 예제 (1) | 2018.04.15 |
Intent로 데이터 전달하기 (0) | 2018.04.07 |
SMS 문자 전송 화면 만들기 예제 ver.2 - 최대 바이트 수 제한 기능 (0) | 2018.04.07 |
SMS 문자 전송 화면 만들기 예제 ver.1 - 글자 길이 제한 기능 (0) | 2018.04.07 |