[Android] Fragment

Jay·2021년 3월 10일
0

Android

목록 보기
20/39
post-thumbnail

Fragment

  • 액티비티 내에 배치되서 어플리케이션 사용자 인터페이스를 구성하는 안드로이드 구성요소이다.

특징

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

🤔 Fragment를 생성 할 때 default 생성자만 사용하길 추천하는 이유?

  • Fragment를 만들 때는 생성자를 오버로딩 하지 않고 생성 시 파라미터를 Bundle에 담아 setArgument()함수를 호출하는 방식이 일반적이다.
  • 안드로이드에 의해 프레그먼트가 복원될 때는 프레그먼트의 기본 생성자를 호출하기 때문에 오버로딩된 생성자의 호출이 보장되지 않는다.

🧐 프래그먼트사이의 커뮤니케이션은 어떤 방식으로 하는가?

  • 서로 다른 fragment들 끼리는 직접적으로 정보를 주고 받을 수 없다. Fragment끼리의 통신은 반드시 host activity를 거쳐서 이루어져야 한다.
    프레그먼트에 콜백함수를 정의하고 액티비티에 해당 콜백함수를 구현 함으로써 프레그먼트 간 통신이 가능하다.

Fragment Lifecycle


개인적인 생각이지만 fragment는 activity위에서 동작하기에 항상 lifecycle을 볼 때 activity의 lifecycle과 같이 봐야한다고 생각한다.

onAttach : 프레그먼트가 액티비티에 연결
onCreateView : 프레그먼트의 레이아웃을 생성
onActivityCreated : 연결된 액티비티의 onCreate가 완료된 후

profile
developer

0개의 댓글