뷰와 상호 작용하는 코드를 쉽게 작성할 수 있는 기능입니다. 각 XML 레이아웃 파일의 바인딩 클래스가 자동으로 생성되고 이를 이용하여 해당 xml에 존재하는 id가 있는 모든 View를 직접 참조할 수 있습니다.
+대부분의 경우에 ViewBinding으로 findViewById 메서드를 대체할 수 있습니다.
View Binding을 사용하기 위해서는 Android Studio 3.6 이상부터 사용이 가능합니다.
build.gradle (:app) 파일에 하단의 코드를 추가합니다.
android {
...
viewBinding {
enabled = true
}
}
android {
...
buildFeatures {
viewBinding true
}
}
+) 바인딩 클래스를 생성하고 싶지 않은 레이아웃의 경우 viewBindingIgnore를 true로 설정해주면 됩니다.
<LinearLayout
...
tools:viewBindingIgnore="true" >
...
</LinearLayout>
View Binding을 사용하고자 하는 Activity에 바인딩 클래스 인스턴스를 선언합니다.
onCreate() 안에 inflate 메서드를 호출하여 Activity에서 사용할 바인딩 클래스 인스턴스를 생성합니다.
바인딩 변수의 root View를 setContentView()에 전달하여 화면에서 활성화 된 View로 만듭니다.
private lateinit var binding : ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
}
이제 바인딩 클래스의 인스턴스를 사용하여 모든 뷰를 참조 할 수 있습니다.
binding.txt.text = "Hi"
binding.btn.setOnClickListener{
...
}