안드로이드 코딩 시 레이아웃에 있는 ID를 FindViewByID로 가져오는 단계없이
바로 쓸 수 있게 해주는 기능.
코틀린 초기에는 코틀린 익스텐션(플러그인)을 이용하였으나 Layout이 많아질 수록 명확성이 떨어짐
ViewBinding 사용 권장
- Activity와 Fragment에서 사용법이 차이가 있음.
- 안드로이드스튜디오 버전에 따라서도 차이가 있음.
- 4.0 버전대 안드로이스 스튜디오 사용중.
- Layout이 추가 될 때마다 해줘야 하는건가(?)
- View가 있고 Layout을 만들었다면 해줘야 하는듯함.
⁂ build.grading(Module: app) android 블록 안에 뷰바인딩 사용을 명시
buildFeatures{
viewBinding = true
}
⁂ Activity에서 사용방법:
액티비티명이 MainActivity 일 경우 자동으로 생성되는 바인딩 클래스명은 ActivityMainBinding.
Layout 파일명이 바인딩 클래스 명이 되는듯. 바인딩 후 setContentView 인자에 변화가 있음.
val biding : ActivityMainBinding = ActivityMainBinding.inflate(layoutInflater)
setContentView(binding.root)
⁂ Fragment에서 사용방법
private var _binding: ActivityMainBinding? = null
private val binding get() = _binding!!
overriding fun onCreateView (inflater: LyaoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
_binding = ActivityMainBinding.inflate(inflater, container, false)
val view = binding.root
return view
overrid fun onDestroyView() {
super.onDestroyView()
_binding = null
}
참고한 강좌: