Android开源项目-ButterKnife
2016-07-19 本文已影响567人
Tsy远
ButterKnife是一个依赖注入开源框架,主要减轻绑定资源id的代码
1 相关文档
官方文档:
http://jakewharton.github.io/butterknife/
推荐的使用教程:
http://leoray.leanote.com/post/butterknife
2 如何使用
2.1 引入开源库
注意:最新的8.2.1版本不仅需要引入
compile 'com.jakewharton:butterknife:8.2.1'
完整的gradel内的引用应该是:
buildscript {
repositories {
mavenCentral()
}
dependencies {
classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'
}
}
apply plugin: 'com.neenbedankt.android-apt'
dependencies {
...
compile 'com.jakewharton:butterknife:8.2.1'
apt 'com.jakewharton:butterknife-compiler:8.2.1'
}
需要引入apt插件。
2.2 使用例子
ButterKnife的使用非常简单,可以减少以前findViewById的代码和监听事件的代码。
原来:
private Button btn;
...
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn=(Button)findViewById(R.id.btn);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Toast.makeText(MainActivity.this, "Btn Clicked", Toast.LENGTH_SHORT).show();
}
});
}
使用ButterKnife:
@BindView(R.id.title) Button btn;
...
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
// TODO Use fields...
}
注意 Button btn 前面不可以有修饰private static
除此之外,还可以在fragment、adapter等使用,还可以简化设置监听函数。更多用法在官方文档中描述很详细。
3 总结
- 整个开源库很小,导出后比较只多了10k。非常适合使用减少activity中的代码,增加可读性
- 其实ButterKnife并不是真正的依赖注入框架,dagger才是,ButterKnife只是简化了资源绑定的过程
- 是个不错的使用在项目中的开源框架。强烈推荐!
结尾
更多文章关注我的公众号
我的公众号