最近在使用ButterKnife的时候遇到了许多的坑,在此记录一下。
配置
首先是版本问题,目前最新的版本是10.0.0, 但是这个版本貌似只支持API level 28 +(官方的README并没有明确指出适配的API level, 但是我看github上的issue中有人提到这一点了),9.x的版本貌似也是这样,所以最后采用了8.8.1版本。
首先在app下的build.gradle中引入依赖:
dependencies {
·····
//黄油刀
implementation 'com.jakewharton:butterknife:8.8.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:8.8.1'
}
注意不要在build.gradle的开头添加apply plugin: ‘com.jakewharton.butterknife’,只加入两行依赖,不需要修改其他的配置,网上好多配置教程都添加了这一句,但是新版的android studio好像会报错。(我用的是3.1.4)
重新build一下项目就OK了。
使用
class MyClass extends AppCompatActivity{
@BindView(R.id.button_search)
ImageView button_search; //使用@BindeView注解来绑定组件
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this); //这里注意一定要绑定一下视图, 否则上边的@BindeView是不起作用的
button_search.doSomething(); //可以直接调用button_search,不必再写findViewById()了
}
}
这里只是举个例子,更多的使用可以参见官方文档~。