Android Binding
업데이트:
카테고리: Android
/태그: Infalte, ViewBinding
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에 대한 바인딩을 설정