안드로이드 LayoutInflate 클래스

권한준·2024년 10월 15일

안드로이드 Inflate

목록 보기
1/2

Inflate란?

사전적 의미로는 "부풀다, 부풀리다"라는 뜻을 가지고 있다.
안드로이드에서는 XML로 작성한 레이아웃을 View 객체로 인스턴스화하는 과정을 의미한다.

inflate 메소드

LayoutInflate 클래스의 inflate() 메소드는 XML 레이아웃을 View 객체로 변환하는데 사용됩니다.

LayoutInflate.inflate(resource: Int, root: ViewGroup?, attachToRoot: Boolean)

파라미터 설명:

  • resource : View 객체로 변환할 레이아웃 XML 파일의 리소스 ID입니다.
  • root : 생성된 View의 부모가 될 수 있는 ViewGroup입니다. 주로 LinearLayout, FrameLayout, ConstraintLayout과 같은 레이아웃을 지정합니다. null로 전달하면 독립적으로 뷰가 생성됩니다.
  • attachToRoot : true로 설정하면 생성된 Viewroot에 자동으로 추가됩니다. false로 설정하면 root와 연결되지 않고 독립적으로 반환됩니다. 그렇기 때문에 반환형이 View 클래스이다.

사용 예시:

inflate() 메소드를 사용한 대표적인 예시로는 Fragment가 있다.

override fun onCreateView(
    inflater: LayoutInflater, container: ViewGroup?,
    savedInstanceState: Bundle?
): View? {
    return inflater.inflate(R.layout.fragment_main, container, false)
}

위 예시처럼,FragmentLayoutInflater 객체를 사용해 XML 레이아웃을 객체화하고, ViewGroup에 추가할지 여부를 결정합니다.

추가 팁:

attachToRootfalse로 설정하는 경우: 주로 RecyclerViewViewPager와 같이 동적으로 레이아웃을 처리할 때 유용합니다. 생성된 뷰가 나중에 수동으로 추가될 경우 이 옵션을 사용합니다.

0개의 댓글