업데이트:

카테고리:

/

태그: ,

Activity나 Fragment의 viewBinding을 사용하기 위해서 아래 코드와 같이 작성한다.

private val binding by lazy {
	ActivityMainBinding.inflate(layoutInflater)
}

문득 작성하다보니 inflate 는 뭐고 layoutInflater 는 무엇인지 궁금하여 찾아보았다.

viewBinding을 허용해주면 xml의 있는 layout에 대해서 binding object가 생성된다.

각자 viewType에 맞게 property가 설정된다.

이 binding object는 3개의 정적 함수가 존재

  • inflate(inflater) : Activity Oncreate에서 사용, parent view로 넘길게 없을 때 사용
  • inflate(inflater, parent, attachToParent) : Fragment나 RecyclerView의 adapter 처럼 parent의 viewGroup이 필요할 때
  • bind(rootView) : 이미 view를 inflate한 상태에서 findViewById를 피하고 싶거나, 기존 코드를 리팩토링할 때 사용

binding.inflate() 는 xml 레이아웃 파일을 로드하고 view에 대한 바인딩을 설정