안드로이드 뷰 바인딩 (2) - 사용법
지난 포스팅에 이어 이번 포스팅에서는 View Binding 의 실제 사용법에 대해서 알아보자.
참고로, 지난 포스팅에서는 View Binding 의 개요 및 View 접근을 위한 다른 방식들과 비교해 보았다.
Dependency 추가
하단과 같이 app gradle file 에 추가한다.
◼ Android studio 3.6 (Android gradle plugin version 3.6 이상)
◼ Android studio 4.0 (Android gradle plugin version 4.0 이상)
View Binding 의 특징
Dependency 를 추가하여 뷰 바인딩을 활성화하면 layout 파일마다 바인딩 클래스가 생성되며 다음과 같은 특징을 가진다.
◼ 끝에 Binding 이란 단어가 붙는다.
◼ 카멜 표기법에 따라 네이밍이 된다.
◼ ID 가 존재하지 않는 뷰에 대해선 클래스에 참조가 존재하지 않는다.
Ex) activity_main.xml -> ActivityMainBinding.java
Ex) fragment_main.xml -> FragmentMainBinding.java
View Binding 비활성화
특정 layout file 에 binding 클래스를 사용하고 싶지 않다면 하단과 같이 viewBindingIgnore 를 설정한다.
tools:viewBindingIgnore="true"
Activity 에 적용하기
하단과 같이 생성된 바인딩 클래스(ActivityMainBinding) 에 포함된 static inflate() 메서드를 호출하여 root 를 setContentView 에 전달한다.
생성된 바인딩 클래스를 이용해 View 에 접근할 수 있다.
Fragment 에 적용하기
하단과 같이 생성된 바인딩 클래스(FragmentMainBinding) 에 포함된 static inflate() 메서드를 호출하여 root 를 onCreateView 에서 반환한다.
생성된 바인딩 클래스를 이용해 View 에 접근할 수 있다.
Activity 와 다른 점이 있다면 onDestoryView 에서 binding 을 초기화(null) 해준다는 점이다.
요 부분은 다음 포스팅에서 자세히 알아보자.
RecyclerView 에 적용하기
하단과 같이 생성된 바인딩 클래스(ContentRecyclerItemBinding) 에 포함된 static inflate() 메서드를 호출하여 ViewHolder 에서 대입한다.
ViewHolder 의 멤버로 저장된 바인딩 클래스를 이용해 View 에 접근할 수 있다.