ButterKnife
注于Android系统的View注入框架,当一个布局十分复杂时,需要引入执行大量的findViewById代码来找到View的对象,有了ButterKnife可以很轻松的省去这些步骤。是大神JakeWharton的力作,目前使用很广。最重要的一点,使用ButterKnife对性能基本没有损失,因为ButterKnife用到的注解并不是在运行时反射的,而是在编译的时候生成新的class。项目集成起来也是特别方便,使用起来也是特别简单。
https://github.com/JakeWharton/butterknife
ButterKnife的优势
1.强大的View绑定事件和资源文件的绑定
2.使用的便捷性上,剔除了原始绑定时候的复杂性
3.由于大多数的注解都是在编译期,所以不会影响程序运行的效率
4.代码清晰,可读性相对来说要强很多
ButterKnife的使用
导入依赖:classpath 'com.jakewharton:butterknife-gradle-plugin:10.0.0’在项目的build.gradle 中添加如下代码:
buildscript {
repositories {
google()
jcenter()
}
dependencies {
classpath 'com.android.tools.build:gradle:3.4.2'
classpath 'com.jakewharton:butterknife-gradle-plugin:10.0.0'
// NOTE: Do not place your application dependencies here; they belong
// in the individual module build.gradle files
}
}
在module的build.gradle中添加如下代码
apply plugin: 'com.android.application'
apply plugin:'com.jakewharton.butterknife'//添加这一行
//依赖
implementation 'com.jakewharton:butterknife:10.0.0'
annotationProcessor 'com.jakewharton:butterknife-compiler:10.0.0'
1.ButterKnife注解添加
@BindView(R.id.btn1)
Button btn1;
@BindView(R.id.tv1)
TextView tv;
2.在onCreate方法中绑定
@Overrideprotected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ButterKnife.bind(this);
getSupportFragmentManager().beginTransaction().</