Butterknife在library下使用

在剛做項目之前,一直都沒有了解過組件化,都是在單一的模塊下使用,感覺使用簡單,就沒有留意那麼多了,知道在公司做項目時,才發現,原來在組件化下的Library中不能使用butterknife了,經過一番折騰,終於可以使用了,自butterknife8.0之後就可以使用了,原因在於library下的資源文件中定義id不是final類型了,,,,下面直接介紹如何使用吧

第一步:在Project的build.gradle文件中添加

dependencies {
    classpath 'com.jakewharton:butterknife-gradle-plugin:8.8.1'
    classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}

第二步:在各個module中的build.gradle添加

apply plugin: 'com.android.library' (在library中不用添加,本身就有)
apply plugin: 'com.jakewharton.butterknife' (在主項目中可以不添加)

在dependencies中添加

dependencies {
    compile 'com.jakewharton:butterknife:8.8.1'
    annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}

第三步:在主項目中,使用Butterknife直接用R來引用資源
在library項目中使用Butterknife使用R2來引用資源,如下

這是在library中使用
class ExampleActivity extends Activity {
  @BindView(R2.id.user) 
  EditText username;
  @BindView(R2.id.pass) 
  EditText password;
...
}

這是在主項目中使用
class ExampleActivity extends Activity {
  @BindView(R.id.user) 
  EditText username;
  @BindView(R.id.pass) 
  EditText password;
...
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章