简介



注意:7.0版本与8.0版本方法名有所改动,整体业务逻辑和原理没什么变动
注意:2017-5之前需在gradle进行好几项配置,而2017-5之后只需添加以下两行依赖即可
  1. 2017-5的配置
  2. compile 'com.jakewharton:butterknife:8.6.0'
  3. annotationProcessor 'com.jakewharton:butterknife-compiler:8.6.0'

特点:
  • 采用注解的方式实现
  • 强大的View绑定和Click事件处理功能,简化代码,提升开发效率
  • 方便的处理Adapter里的ViewHolder绑定问题
  • 运行时不会影响APP效率,使用配置方便
  • 代码清晰,可读性强
使用心得:
  • Activity中ButterKnife.bind(this);必须在setContentView();之后,且父类bind绑定后,子类不需要再bind
  • Fragment中为ButterKnife.bind(this, mRootView);
  • 成员不能用private or static 修饰,否则会报错

使用准备

一、AS中将注解和字段放在一行的设置:
settings-->editor-->code style-->java-->wrapping and braces-->Field annotation 

二、.gradle配置
1、在app层级的build.gradle文件的头部添加【apply plugin: 'com.neenbedankt.android-apt'】
2、在app层级的build.gradle文件的dependencies中添加如下依赖:
     compile 'com.jakewharton:butterknife:8.1.0'
     apt 'com.jakewharton:butterknife-compiler:8.1.0'
3、在project层级的build.gradle文件的dependencies中添加如下依赖
     【classpath 'com.neenbedankt.gradle.plugins:android-apt:1.8'】
最后,同步Gradle,你就可以愉快地使用ButterKnife了。


三、使用zelezny插件
可一键生成所有定义id的组件的声明及onclick事件,不用手动写。
在AndroidStudio->File->Settings->Plugins->搜索【Zelezny】下载添加即可。
使用时,在要导入注解的Activity 或 Fragment 或 ViewHolder的【layout】资源代码上,右键—>Generate—>Generate ButterKnife Injections

功能

1、绑定Activity或Fragment,父类中绑定后子类不需要再绑定
== 0) return true;
  • else return false; //if return false, the onItemClick() will be invoked反射调用 when touch up
  • }
  • }