Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> ButterKnife使用詳談

ButterKnife使用詳談

編輯:關於Android編程

(1)ButterKnife是什麼?

在開發過程中,我們總是會寫大量的findViewById和點擊事件,像初始view、設置view監聽這樣簡單而重復的操作讓人覺得特別麻煩,當然不會偷懶的程序員不是好程序員,自然也出現了相應的解決方案–依賴注入。而ButterKnife則是依賴注入中相對簡單易懂的很不錯的開源框架,(其實ButterKnife也不算嚴格意義上的依賴注入,後面文章中會做分析)。但ButterKnife作為JakeWharton大神寫的注解框架被廣泛應用於android開發中,自然也有它的過人之處。下面對它的使用過程進行描述。

butterKnife

(2)ButterKnife 有哪些優勢?

ButterKnife的具體使用,請參考文章
http://blog.csdn.net/itjianghuxiaoxiong/article/details/50177549
它的具體優勢:
1.強大的View綁定和Click事件處理功能,簡化代碼,提升開發效率
2.方便的處理Adapter裡的ViewHolder綁定問題
3.運行時不會影響APP效率,使用配置方便
4.代碼清晰,可讀性強
butterknife的使用

(3) butterknife 和其他依賴注入框架的區別在哪裡?

3.1 依賴注入框架的區別的聯系:
其實主要在android中使用的依賴注入框架為Dagger、Butter Knife、RoboGuice、Android Annotations。這裡提供鏈接:
Android’s Options for Dependency Injection: Dagger, RoboGuice, and ButterKnife
對應的翻譯文章:Android依賴注入:Dagger、RoboGuice和ButterKnife.
3.2 當然,這種典型的問題當然少不了StackOverflow上去看看,

輸入關鍵字

找到點贊最多的答案,肯定對你有幫助

大概意思:
Buffer knife目的為注入到view,所以能夠在非activity裡面注入,也能注入到inflate的views裡面Dagger能夠注入到任何你想要的對象,只要其在module類中。或者它是構造器。但是缺少對方法和字段的注入支持。Buffer knife只是避免樣板代碼,findViewById,僅此而已,所以不能算是一個真正的注入。只是一個view的代言。<喎?/kf/ware/vc/" target="_blank" class="keylink">vcD4NCjwvYmxvY2txdW90ZT4NCjxoMyBpZD0="4butterknife使用中有哪些注意的點呢">(4)ButterKnife使用中有哪些注意的點呢?

注意:
1. Activity ButterKnife.bind(this);必須在setContentView();之後,且父類bind綁定後,子類不需要再bind
2. Fragment ButterKnife.bind(this, mRootView);
3. 屬性布局不能用private or static 修飾,否則會報錯
4. setContentView()不能通過注解實現。
5. ButterKnife已經更新到版本7.0.1了,以前的版本中叫做@InjectView了,而現在改用叫@Bind,更加貼合語義。
6. 在Fragment生命周期中,onDestoryView也需要Butterknife.unbind(this)
7. ButterKnife不能再你的library module中使用哦!!這是因為你的library中的R字段的id值不是final類型的,但是你自己的應用module中確是final類型的。針對這個問題,有人在Jack的github上issue過這個問題,他本人也做了回答,點擊這裡。
屬性必須是一個常量

(5)我還想更懶怎麼辦?

哈哈,這裡說的是添加插件,讓你寫代碼更快捷。
Zelezny插件的使用的使用能讓你變得更懶(也代碼更快)
**Zelezny插件的使用**
5.1 怎麼使用插件?

插件使用步驟1

插件使用步驟2

插件使用步驟3

 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved