[Android] Kotlin extensions deprecated
Kotlin Extension
xml의 view와 코드를 연결해주는 findViewById() 메서드 대신 뷰의 id를 통해 뷰 프로퍼티를 바로 적용할 수 있게 해주는 plugin
Kotlin 1.4.20-M2
에서 다음과 같이 변경 되었다
KT-42121
Deprecate Kotlin Android Extensions compiler pluginKT-42267
Platform declaration clash
error in IDE when usingkotlinx.android.parcel.Parcelize
KT-42406
Long or infinite code analysis on simple files modification
이에 따라서 kotlin extensions을 걷어내야 하는 상황
프로젝트에서 아래와 같은 코드들을 다 지워줘야 한다
1
import kotlinx.android.synthetic.main.view
저번에 만들었던 CustomView를 한번 수정해보도록 하겠다
1
2
3
4
5
inflate(context, R.layout.seek_bar_view, this).apply {
seekBarView = seekBar
icon = vw_icon
infoLayout = ll_info
}
-
위 코드에서
seekBar
,vw_icon
,ll_info
이 부분이 kotlin extensions을 통한 view를 참조해주는 부분이다 - 이 부분을
Databinding
을 이용해 수정해 보자 - 데이터 바인딩은 아래 포스팅 참고 !
1
2
3
4
5
6
val inflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
val binding = DataBindingUtil.inflate<SeekBarViewBinding>(inflater, R.layout.seek_bar_view), this, false)
seekBarView = binding.seekBar
icon = binding.vwIcon
infoLayout = binding.llInfo
- 끝