Activity만으로 화면을 구성할 경우, 코드가 길고 복잡해지며 태블릿 PC는 activity 하나만으로 화면을 보이는데 어려움이 있었다. 이를 극복하기 위해 등장한 것이 Fragment이다.
Fragment 특징)
1. 반복적으로 재사용 가능하다.
-여러 Activity에서 사용가능하다.
2. 독립적으로 존재할 수 없으며, Activity나 다른 Fragment에 종속된다.
-독자적인 xml(레이아웃)은 지닐 수 있지만, Fragment 객체가 생기고 그려지는 것은 다른 Activity 혹은 Fragment에서 이루어지는 것이다. 따라서 Fragment의 뷰 계층 구조는 호스트의 뷰 계층 구조의 일부가 된다.
3. 자체적인 수명주기를 갖는다.
-하지만 기본적으로 Activity 위에서 시행되기 때문에, Activity의 생명주기와의 연관성이 존재한다.
Fragment를 생성하면 기본으로 보이는 화면이다.
onCreate는 Fragment를 호출하고, onCreateView에서는 화면을 구성하고 호출한다.
companion object 부분에서는 new instances를 생성한다.
Activity의 생명 주기에 따라 Fragment도 생성, 파괴된다. 따라서 Bundle 객체로 데이터를 전달하면 재생성시마다 데이터를 손실하는 것을 방지할 수 있다.
참고)
728x90