티스토리 뷰

300x250
300x250



지난 포스팅에 이어 이번 포스팅에서는 View Binding 의 실제 사용법에 대해서 알아보자.

참고로, 지난 포스팅에서는 View Binding 의 개요 및 View 접근을 위한 다른 방식들과 비교해 보았다.

[Android] - 안드로이드 뷰 바인딩 (1)



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 에 접근할 수 있다.

 



728x90
댓글