728x90
ViewBinding(뷰 바인딩) 이란
레이아웃 XML 파일에 선언한 뷰 객체를 코드에서 쉽게 이용하는 방법이다.
레이아웃 XML 파일에 등록한 뷰는 findViewById() 함수로 얻어서 사용해야한다.
그런데 이러한 과정은 너무나도 귀찮다.
그래서 이러한 해결책이 바로 ViewBinding이다.
사용하는 방법
buildFeatures {
viewBinding = true
}
우선 build.gradle 파일을 열고 android 영역에서 위와 같은 코드를 선언한다.
이렇게 하면 레이아웃 XML파일에 등록된 뷰 객체를 포함하는 클래스가 자동으로 만들어진다.
자동으로 만들어지는 클래스의 이름은 레이아웃 XML 파일 명을 따른다. 첫글자를 대문자로 하고 밑줄(_)은 빼고 뒤에 오는 단어를 대문자로 만든후 Binding을 추가한다.
자동으로 만들어진 클래스의 inflate() 함수를 호출하면 바인딩 객체를 얻을 수 있다.
이때 인자로 layoutInflater를 전달한다. 그리고 바인딩 객체의 root 프로퍼티에는 XML의 루트 태그 객체가 자동으로 등록되며 액티비티 화면 출력은 setContentView() 함수에 binding.root를 전달하면 된다.
class MainActivity : AppCompatActivity() {
lateinit var binding: ActivityMainBinding
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
binding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
}
}
바인딩 객체에 등록된 뷰 객체명은 XML 파일에 등록한 뷰의 id 값을 따른다.
이때 build.gradle파일에 뷰바인딩을 사용하기 위해서 선언하면, XML 하나당 바인딩 클래스가 자동으로 만들어지는데, 이 때 어떤 레이아웃 XML 파일은 바인딩이 필요가 없을 수도 있다. 이때는 XML 파일의 루트 태그에 tools:viewBindingIgnore="true" 라는 속성을 추가한다.
728x90
'Android > Study' 카테고리의 다른 글
[Android] 로그인 화면 구성 및 디자인 (0) | 2023.10.25 |
---|---|
[Android] Mock을 사용해 Android test하기 (0) | 2023.10.04 |
[Android] EditTextView 간단 정리 (0) | 2023.09.23 |
[Android] TextView 정리 (0) | 2023.09.23 |
[Android] View Class에 대한 정리 (0) | 2023.09.23 |