butter knife

2019-03-28  本文已影响0人  leap_

介绍:

Field and method binding for Android views which uses annotation processing to generate boilerplate code for you.大致的作用是利用注解帮助我们自动生成代码。

butter_knife实际就是一个十分完善的安卓注解机制,我们借助这个机制可以省去好多类似findViewById,setOnclickListener的代码,使代码看上去更整洁,节省开发人员的时间。

配置gradle

1 添加dependency

implementation'com.jakewharton:butterknife:10.1.0'

annotationProcessor'com.jakewharton:butterknife-compiler:10.1.0'

添加 plugin 到 buildgradle

官网添加完的buildgradle样式

classpath 'com.jakewharton:butterknife-gradle-plugin:10.1.0'

mavenCentral()

google()

3 添加plugin:

apply plugin :  'com.android.library'

apply plugin : 'com.jakewharton.butterknife'

使用

在使用前,我们再添加一个自动生成代码的插件:zelezny

File->settings->Plugins

添加进来以后就可以自动生成代码了。


省略findViewById:

1 在activity 中:现在layout中写好控件和id,然后到对应的Activity中右击鼠标:

(或者alt+insert),鼠标的光标一定要在setContentView中的layout后面

选择Generate ButterKnife inJections

然后BK就会在activity中为我们自动生成各个控件的变量名并且绑定他们。(注意光标一定要放在layout的 id上面,不然是找不到Generate这个选项的)。

2  在fragment中使用:由于fragment和activity的生命周期不同,需要进行解绑操作。实际使用插件操作和activity一样。

不过我们要知道几个东西:BK的bind()会返回一个Unbinder对象,用于解绑操作。activity不需要解绑。

3 在Adapter(viewHolder)中绑定:在Adapter的ViewHolder中使用,将ViewHolder加一个构造方法,在new ViewHolder的时候把view传递进去。使用ButterKnife.bind(this, view)进行绑定。

这样就省去了在getView()中findid操作。无需取消绑定BK。

附上getView()

绑定资源:

strings.xml

  1 绑定String:

2 绑定String_array: 

3 绑定color:

绑定事件:

单个事件绑定 多个事件绑定
上一篇下一篇

猜你喜欢

热点阅读