介绍
-
butter knife是出自JakeWharton的一个开源库,它通过注解的方式来替代android中view的相关操作。减少大量的findViewById以及setOnClickListener代码,且对性能的影响较小.
-
ButterKnife项目地址:https://github.com/JakeWharton/butterknife
-
ButterKnife的优势:
1、强大的View绑定和Click事件处理功能,简化代码,提升开发效率
2、方便的处理Adapter里的ViewHolder绑定问题
3、运行时不会影响APP效率,使用配置方便
4、代码清晰,可读性强 -
提示:
-
Butter Knife有多个版本,不同版本的初始化方法都不一样,且@Bind注解控件的后缀名也不同
使用
导包
android {
...
// Butterknife requires Java 8.
compileOptions {
sourceCompatibility JavaVersion.VERSION_1_8
targetCompatibility JavaVersion.VERSION_1_8
}
}
dependencies {
implementation 'com.jakewharton:butterknife:10.2.1'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.2.1'
}
插件安装
android studio 插件安装
在Plugins 里搜 ButterKnife Zelezny ,下载后,重启软件.
使用
在布局文件上
setContentView(R.layout.activity_buffer_knife)
加粗的斜体字体上,点击右键. -> 选择generate ->找到Buffer选项.
会弹出如下的对话框.
如果需要点击事件,记得给OnClick打上对勾即可.
activity中的样式:
public class BufferKnifeActivity extends AppCompatActivity {
@BindView(R.id.title)
TextView title;
@BindView(R.id.btn)
Button btn;
@BindView(R.id.btn1)
Button btn1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_buffer_knife);
ButterKnife.bind(this);
}
@OnClick(R.id.btn)
public void onViewClicked() {
}
}
fragment中使用
public class BufferKnifeFragment extends Fragment {
@BindView(R.id.title)
TextView title;
@BindView(R.id.btn)
Button btn;
Unbinder unbinder;
public BufferKnifeFragment() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
View inflate = inflater.inflate(R.layout.fragment_buffer_knife, container, false);
unbinder = ButterKnife.bind(this, inflate);
return inflate;
}
@OnClick(R.id.btn)
public void onViewClicked() {
}
@Override
public void onDestroyView() {
super.onDestroyView();
unbinder.unbind();
}
}