butter knife

介紹:

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

官網(wǎng)添加完的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。

附上getView()

綁定資源:

strings.xml

? 1 綁定String:

2 綁定String_array:?

3 綁定color:

綁定事件:

單個(gè)事件綁定
多個(gè)事件綁定
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容