Android Butter Knife 在项目中的配置及插件安装请见AS 中安装插件及常用插件
ButterKnife的优势
- 避免过多的findViewById的操作,直接对view进行注解绑定点击事件
- 因为是编译期的注解,在运行时不会影响App的效率,使用配置方便
- 方便的处理Adapter里的ViewHolder绑定问题
- 可以简化代码书写,逻辑清晰
ButterKnife的使用
由于每次在Acitivity中都要进行ButterKnife的bind操作,所以建议将bind操作写到BaseActivity中,绑定Activity 必须在setContentView之后,代码如下:
public abstract class BaseActivity extends Activity {
private Unbinder unbinder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getContentView());
unbinder = ButterKnife.bind(this);
}
@Override
protected void onDestroy() {
super.onDestroy();
unbinder.unbind();
}
protected abstract int getContentView();
}
而其他Activity 只需继承BaseActivity,实现getContentView方法,在getContentView返回Activity的布局文件即可。
具体使用方法可参看Android Butter Knife 框架——最好用的View注入
ButterKnife使用心得
- ButterKnife.bind()的调用在Activity中必须在setContentView之后
- 属性布局不能用private or static 修饰,否则会报错
- 可以写一个BaseActivity来调用ButterKnife.bind()方法,子类则不需要再进行bind操作
- 在8.4中ButterKnife移除了unBind方法,使用ButterKnife.bind(this)返回一个Unbinder的引用,通过Unbinder的unbind()方法进行解除绑定
参考连接:
http://https://www.jianshu.com/p/9ad21e548b69
https://www.jianshu.com/p/83919fca8d84