티스토리 뷰
findViewById를 매번 사용하여 뷰를 가져오는 경우, 뷰가 여러 개인 경우 관리 포인트가 많아지고 코드가 복잡해질 수 있습니다. 뷰 바인딩은 여러 뷰 객체들을 관리하고, 쉽게 가져올 수 있도록 도와주는 역할을 합니다. XML 레이아웃 파일에 정의된 뷰들을 바로 가져와 쓸 수 있어 매우 편리합니다.
기본적인 사용 방법은 우선, build.gradle의 모듈 단위에 아래와 같이 코드를 추가합니다.
android {
viewBinding {
enabled = true
}
}
뷰 바인딩 사용 방법을 요약하자면 아래와 같습니다. 우선 setContentView(R.layout.activity_main) 처럼 설정된 부분을 뷰 결합을 통해서 바꿔줘야 합니다. 이렇게 함으로써, xml 객체를 binding에 담아서 코드로 쉽게 접근할 수 있도록 도와줍니다. 그리고 binding.root 부분 처럼, xml 객체가 담겨진 binding이 view에 담겨져, setContentView(view)를 통해 표현됩니다.
* 뷰 바인딩/뷰 결합
private lateinit var binding: ResultProfileBinding
override fun onCreate(savedInstanceState: Bundle) {
super.onCreate(savedInstanceState)
binding = ResultProfileBinding.inflate(layoutInflater)
val view = binding.root
setContentView(view)
}
* 기본 onCreate 메소드의 setContentView
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
}
이렇게 결합이 이루어지면, 레이아웃 xml의 여러 뷰 객체를 쉽게 접근해서 사용이 가능합니다. 아래의 LinearLayout에는 텍스트뷰, 이미지뷰, 버튼 뷰가 하위 뷰로 존재하는 것을 볼 수 있습니다.
<LinearLayout>
<TextView android:id="@+id/name" />
<ImageView android:cropToPadding="true" />
<Button android:id="@+id/button" />
</LinearLayout>
뷰 바인딩이 완성 후, 아래의 코드처럼 id를 이용해 쉽게 접근이 가능합니다. 매번 findViewById를 사용할 수고가 줄어들게 되는 것입니다.
binding.name.text = viewModel.name
binding.button.setOnClickListener { }
더욱 자세한 내용은 공식 문서를 참조하시기 바랍니다.
https://developer.android.com/topic/libraries/view-binding
'Android App Coding' 카테고리의 다른 글
뷰 모델 View Model (0) | 2021.08.08 |
---|---|
안드로이드 플래그 Flag (0) | 2021.08.08 |
안드로이드 스튜디오 단축키 Hot Keys (Window) (0) | 2021.07.20 |
안드로이드 권한 Permission (0) | 2021.07.18 |
안드로이드 네트워크 2편 Network (0) | 2021.07.18 |
- Total
- Today
- Yesterday
- 2007년 사건사고
- findViewById
- 안드로이드 스튜디오 에러
- ToDo List 앱 만들기
- 인텐트
- 리스트뷰
- tabLayout
- view binding
- 안드로이드 프로젝트
- 선형 레이아웃
- RecyclerView
- lazy init
- 안드로이드 앱 만들기
- 2021년 사건사고
- bmi 계산기 만들기
- 탭레이아웃
- 미제사건
- 애드뷰
- 뷰 바인딩
- 상대적 레이아웃
- 메소드 오버라이딩
- notifyDataSetChanged
- 2019년 사건사고
- 대한민국 미제사건
- 자바스크립트 배열
- addView
- android adapter
- 리사이클러뷰
- Bmi Calculator
- 안드로이드 어댑터
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 29 | 30 |