ButterKnife,俗称黄油刀,是Android的一种View依赖注解框架。View注解框架的作用就是大量节省掉去写findViewById或者是点击操作之类的界面相关的处理代码。一般来说MVVM架构的项目,View注解会选用更为主流的databinding注解框架来配合,但是如果项目是MVP的架构,多会使用ButterKnife作为View的注解框架。
集成黄油刀的步奏如下:
1.app的build.gradle导入:
implementation 'com.jakewharton:butterknife:8.5.1' //Butterknife 黄油刀
annotationProcessor 'com.jakewharton:butterknife-compiler:8.5.1'
2.project的build.gradle导入: classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.2'
dependencies {
classpath 'com.android.tools.build:gradle:3.1.4'
//add for butterknife
classpath 'com.jfrog.bintray.gradle:gradle-bintray-plugin:1.7.2'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
3. 界面中绑定黄油刀
bind = ButterKnife.bind(this);
成功的话会在build文件下找到黄油刀自动生成的文件,命名方式是界面文件的名字后+_ViewBinding,下图中的MainActivity_ViewBinding就是生成的文件:
常用的注解可以参照https://blog.csdn.net/u012527802/article/details/81059568,已经很详细了,比如根据id绑定view的注解方式:
@BindView(R.id.tv_location)
TextView tv_location;
//使用
tv_location.setText(bean.getLat()+","+bean.getLon());