본문 바로가기
카테고리 없음

[안드로이드] 개념 및 용어 정리 - 프레그먼트 Fragment

by keel_im 2020. 11. 19.
반응형

프래그먼트

프래그먼트는 태블릿과 같은 대화면에서 효율적으로 화면을 구성하기 위해 생긴 구성요소 이다.

액티비티를 분할하여 화면의 한부분을 정의하며 액티비티와 같이 레이아웃, 동작 처리, 생명주기를 가지는 독립적인 모듈이다. 다른 액티비티에서도 사용 할 수 있어 재사용성이 뛰어나며 액티비티 실행 중에 추가, 제거가 가능하다.

프레그먼트는 액티비티의 일부분에만 배치되는 화면 및 동작을 조작하기 위한 객체입니다. 안드로이드 3.0(허니콤)에서 화면이 비교적 큰 태블릿의 등장으로 작은 단위의 화면의 생명주기 관리할 필요가 있어 추가되었습니다. 프레그먼트 매니저를 통해서 여러개의 프레그먼트를 조작할 수 있습니다. 레이아웃 xml 파일에서 다른 뷰들과 함께 배치될 수 있습니다.

Fragment를 생성 시 기본 생성자만 사용하길 추천하는 이유?

안드로이드 OS에 의해서 프래그먼트가 복원될 때는 프래그먼트의 기본 생성자를 호출하기 때문에 오버로딩된 생성자의 호출이 보장되지 않는다.프래그먼트를 생성 시 생성자를 오버로딩 하지 않고 생성 시 파라미터를 Bundle에 담아 setArgument() 함수를 호출하는 방식을 사용한다. (액티비티 - 프래그먼트)

*Bundle 키 값 구조를 갖는 HashMap 형태 클래스이다. (값을 전달하는 인텐트하고도 유사하다고 이해할 수 도 있다. )

프래그먼트 끼리 통신을 하는 방법

서로 다른 fragment들 끼리는 직접적으로 정보를 주고 받을 수 없다. Fragment끼리의 통신은 반드시 host activity(프래그먼트들이 바인딩되어 있는 activity)를 거쳐서 이루어져야 한다.

  • viewmodel 클래스를 이용하여 통신하는 방법
  • interface 를 만들고 콜백 함수를 만드는 방법

프래그먼트의 생명주기

 

액티비티에 상태에 맞추어서 프래그먼트 매니저는 생명주기 함수를 콜한다.

참고

https://developer.android.com/

반응형

댓글