由於Kotlin成為Android新一代的開發語言,所以最近也開始使用了Kotlin
然而在專案中常常會用到有名的奶油刀(ButterKnife)來幫助我們bind view
雖然在kotlin當中我們不需要再藉由ButterKnife來Bind view,
因為只要在專案中的gradle加上
apply plugin: 'kotlin-android-extensions'
Kotlin就可以自動幫我們從xml裡面找到view並且bind.
既然如此,那為何我還需要用到ButterKnife呢?
因為雖然Kotlin可以幫助我們BindView,但是ButterKnife除了BindView之外,他還有很多好用的Annotation可以使用
像是
@OnClick(R.id.btn) fun onClick(view: View) { //do something }
這類好用的Annotation來幫助我們,但如果你使用了Kotlin之後,你會發現編譯通過,但ButterKnife似乎沒有作用了?
沒錯,因為Kotlin要用kapt,而不是原本的apt
所以我們需要在gradle中將ButterKnife改為
kapt { generateStubs = true } dependencies { compile("com.jakewharton:butterknife:$butterknife_version") { exclude group: 'com.android.support', module: 'support-annotations' exclude group: 'com.android.support', module: 'support-compat' } kapt "com.jakewharton:butterknife-compiler:$butterknife_version" }
其中特別注意到butterknife_version需要一致,否則就會出問題哦!