介紹:
Field and method binding for Android views which uses annotation processing to generate boilerplate code for you.大致的作用是利用注解幫助我們自動(dòng)生成代碼。
butter_knife實(shí)際就是一個(gè)十分完善的安卓注解機(jī)制,我們借助這個(gè)機(jī)制可以省去好多類似findViewById,setOnclickListener的代碼,使代碼看上去更整潔,節(jié)省開(kāi)發(fā)人員的時(shí)間。
配置gradle
1 添加dependency:
implementation'com.jakewharton:butterknife:10.1.0'
annotationProcessor'com.jakewharton:butterknife-compiler:10.1.0'
2?添加 plugin 到?buildgradle

classpath 'com.jakewharton:butterknife-gradle-plugin:10.1.0'
mavenCentral()
google()
3 添加plugin:
apply plugin :? 'com.android.library'
apply plugin : 'com.jakewharton.butterknife'
使用
在使用前,我們?cè)偬砑右粋€(gè)自動(dòng)生成代碼的插件:zelezny
File->settings->Plugins

添加進(jìn)來(lái)以后就可以自動(dòng)生成代碼了。
省略findViewById:
1 在activity 中:現(xiàn)在layout中寫(xiě)好控件和id,然后到對(duì)應(yīng)的Activity中右擊鼠標(biāo):
(或者alt+insert),鼠標(biāo)的光標(biāo)一定要在setContentView中的layout后面

選擇Generate ButterKnife inJections

然后BK就會(huì)在activity中為我們自動(dòng)生成各個(gè)控件的變量名并且綁定他們。(注意光標(biāo)一定要放在layout的 id上面,不然是找不到Generate這個(gè)選項(xiàng)的)。
2? 在fragment中使用:由于fragment和activity的生命周期不同,需要進(jìn)行解綁操作。實(shí)際使用插件操作和activity一樣。
不過(guò)我們要知道幾個(gè)東西:BK的bind()會(huì)返回一個(gè)Unbinder對(duì)象,用于解綁操作。activity不需要解綁。



3 在Adapter(viewHolder)中綁定:在Adapter的ViewHolder中使用,將ViewHolder加一個(gè)構(gòu)造方法,在new ViewHolder的時(shí)候把view傳遞進(jìn)去。使用ButterKnife.bind(this, view)進(jìn)行綁定。

這樣就省去了在getView()中findid操作。無(wú)需取消綁定BK。

綁定資源:

? 1 綁定String:

2 綁定String_array:?

3 綁定color:

綁定事件:

