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;
...
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章