LayoutInflater

Hyeon·2023년 4월 19일
0

Android

목록 보기
12/15

역할

레이아웃 xml 파일을 코드에서 초기화(=전개)하는 기능을 제공한다. 여기서 초기화란 xml에서 선언한 뷰를 코드에서 이용하고자 생성하는 작업을 말한다. xml 파일은 텍스트 파일일 뿐이다. 따라서 코드에서 이용하려면 xml 에서 선언한 대로 객체를 생성해서 메모리에 할당해야 한다.

xml에서 화면을 구성하고 setOnContentView() 로 액티비티에서 출력하면 되는데 LayoutInflater로 객체를 굳이 생성해야 할까?

액티비티의 화면을 구성하는 xml 파일이라면 LayoutInflater 말고 setOnContentView() 함수를 사용하면 된다.
커스텀 다이얼로그, 리스트 뷰, 리사이클러 뷰의 항목 화면, 프래그먼트 등 액티비티의 화면을 목적으로 하지 않는 xml 파일을 만들 때 LayoutInflater 를 사용한다.

초기화 방법

먼저 getSystemService() 함수로 LayoutInflager를 얻는다. 그리고 inflate() 함수를 호출해 매개변수로 초기화할 레이아웃 xml 파일 정보를 전달한다. inflate() 함수의 반환값은 초기화된 xml 의 루트 태그에 해당하는 객체이다.

xml 파일 초기화

val inflater = getSystemService (Context. LAYOUT_INFLATER_SERVICE) as LayoutInflater
val rootView = inflater.inflate(R.layout.activity_one, null)

뷰 바인딩을 적용한 xml 파일 초기화

val binding = ActivityOneBinding.inflate(layoutInflater)
val rootView = binding.root

참고 자료

  • Do it 안드로이드 도서
profile
컴공학부생입니다.

0개의 댓글