티스토리 뷰
지난 포스팅에 이어 이번 포스팅에서는 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 에 접근할 수 있다.
'Android' 카테고리의 다른 글
보안정책 캡쳐 불가 화면에서 캡쳐하기 (6) | 2021.10.14 |
---|---|
안드로이드 뷰 바인딩 (3) - Fragment (0) | 2021.10.12 |
안드로이드 뷰 바인딩 (1) - 개요 및 다른 방식들과의 비교 (0) | 2021.09.24 |
Android 화면 녹화 (0) | 2021.08.31 |
유용한 에니메이션 라이브러리 - Lottie (0) | 2021.08.31 |
- Total
- Today
- Yesterday
- task
- android intent
- notifyDataSetChanged
- bindservice
- 리워드 어플
- 리워드앱
- StartService
- 안드로이드 서비스
- 안드로이드 인텐트
- android task
- 채굴앱
- onContextItemSelected
- StringUtils
- task 생성
- Intent
- 앱테크
- p2e
- mPANDO
- 무료 채굴
- M2E
- onCreateContextMenu
- 무료채굴
- WEMIX
- registerForContextMenu
- RoomDatabase
- 앱테크 추천
- android activity flag
- BroadcastReceiver
- android flag activity
- Android Service
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | ||||||
2 | 3 | 4 | 5 | 6 | 7 | 8 |
9 | 10 | 11 | 12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 |
23 | 24 | 25 | 26 | 27 | 28 |