令人超贊的ButterKnife—快捷、方面、好用!你還在等什麼
前言介紹
你可能沒有了解過的ButterKnife8.8.1的新特性
博客地址:
聲明原創本文為codeGoogler授權發布,未經允許請勿轉載
正文
ButterKnife8.8.1的用法什麼是ButterKnife
ButterKnife是目前常用的一種依託Java註解機制實現輔助代碼生成的框架;用到了註解處理器。
它是一個專註於Android系統的View注入框架,將Android視圖和回調方法綁定到成員變數和方法上;可視化一鍵生成;可以減少大量的findViewById以及setOnClickListener代碼,是註解中相對簡單易懂的開源框架 。
一句話概括:依賴注入框架,主要用於註解,減少代碼。butterknife表面意思黃油刀
ButterKnife 優勢:
1.強大的View綁定和Click事件處理功能,簡化代碼,提升開發效率
2.方便的處理Adapter里的ViewHolder綁定問題
3.運行時不會影響APP效率,使用配置方便
4.代碼清晰,可讀性強
使用心得:
1.Activity ButterKnife.bind(this);必須在setContentView();之後,且父類bind綁定後,子類不需要再bind,Activity不需要unbind
2.Fragment ButterKnife.bind(this, mRootView);
3.屬性布局不能用private or static 修飾,否則會報錯
4.setContentView()不能通過註解實現。(其他的有些註解框架可以)
使用方法
導入
一鍵生成資源id
該圖引依凡王子的博客: (http://www.cnblogs.com/zhengjunfei/p/5910497.html)
GIF/1K
英文使用說明地址:
http://jakewharton.github.io/butterknife/
API文檔地址:
http://jakewharton.github.io/butterknife/javadoc/
GitHub源碼地址:
https://github.com/JakeWharton/butterknife
測試效果如下
GIF/1K
GIF/1K
注意事項
1)在Activity 類中綁定 :ButterKnife.bind(this);
必須在setContentView();之後綁定;且父類bind綁定後,子類不需要再bind。
2)在非Activity 類(eg:Fragment、ViewHold)中綁定:
ButterKnife.bind(this,view);
這裡的this不能替換成getActivity()。
3)activity中不需要解綁
在Activity中不需要做解綁操作,在Fragment 中必須在onDestroyView()中做解綁操作。
4)ButterKnife的修飾符
使用ButterKnife修飾的方法和控制項,不能用private or static 修飾,否則會報錯。
5)setContentView()不能通過註解實現。(其他的有些註解框架可以)
6)對於mvc設計模式
使用Activity為根視圖綁定任意對象時,如果你使用類似MVC的設計模式你可以在Activity 調用ButterKnife.bind(this, activity),來綁定Controller。
7)子View的相關綁定
使用ButterKnife.bind(this,view)綁定一個view的子節點欄位。如果你在子View的布局裡或者自定義view的構造方法里 使用了inflate,你可以立刻調用此方法。或者,從XML inflate來的自定義view類型可以在onFinishInflate回調方法中使用它。
8)修飾類型不能是:private 或者 static
bind資源
綁定顏色
綁定View
綁定多個View
綁定String資源數組
綁定Bitmap 資源
事件的bind註解
@OnClick—點擊事件
@OnCheckedChanged —選中,取消選中
@OnEditorAction —軟鍵盤的功能鍵
@OnFocusChange —焦點改變
@OnItemClick item—條目被點擊
@OnItemLongClick item—長按(返回真可以攔截onItemClick)
@OnItemSelected —item被選擇事件
@OnLongClick —長按事件
@OnPageChange —頁面改變事件
@OnTextChanged —EditText裡面的文本變化事件
@OnTouch —觸摸事件
@Optional
設置多個View重點講解
綁定多個OnCLick
綁定listView的OnItemClick
綁定listView的OnItemLongClick
綁定ChexkBox的OnItemLongClick
單個綁定onClick事件
項目地址:
https://github.com/androidstarjack/EventBusTestSimple
更多文章相信自己,沒有做不到的,只有想不到的
在這裡獲得的不僅僅是技術!
—終端研發部—
這裡學到不僅僅是技術
※NDK開發筆記—ndk環境安裝及其搭建
※ReactNative開發之旅—開發環境搭建
※教你手擼一個APP銷控表滑動自定義View—多RecyclerView同步滾動
TAG:終端研發部 |