1. 程式人生 > >Android之---ButterKnife-View注入框架(簡單介紹和在Studio中安裝)

Android之---ButterKnife-View注入框架(簡單介紹和在Studio中安裝)

ButterKnife-View注入框架(簡單介紹和在Studio中安裝)

1.簡單介紹

Butter Knife使用簡單介紹

作為一名Android開發,是不是經常厭煩了大量的findViewById以及setOnClickListener程式碼,而ButterKnife是一個專注於Android系統的View注入框架,讓你從此從這些煩人臃腫的程式碼中解脫出來。先來看一段程式碼示例說明下ButterKnife是如何簡化程式碼的:

注意:如果你是使用的Eclipse引用該library,你需要參考這裡Eclipse Configuration做一些配置,否則會執行出錯。

這裡寫圖片描述

而用ButterKnife之後的程式碼是這樣的:

這裡寫圖片描述

Butter Knife特性

  1. 支援 Activity 中的 View 注入
  2. 支援 View 中的 View 注入
  3. 支援 View 事件回撥函式注入

目前支援如下事件回撥函式:

  • View: @OnLongClick and @OnFocusChanged.
  • TextView: @OnEditorAction.
  • AdapterView: @OnItemClick and @OnItemLongClick.
  • CompoundButton: @OnCheckedChanged.

下面來看一些注入的示例程式碼:

在Activity 中注入

這裡寫圖片描述

在Fragment中注入

這裡寫圖片描述

在ViewHolder中注入

這裡寫圖片描述

注入回撥函式

下面是幾種注入回撥函式的方法示例:

這裡寫圖片描述

Reset函式

如果需要在 介面 銷燬的時候,把注入的 View 設定為 Null, 則可以用 reset 函式:

這裡寫圖片描述

另外 還支援 可選的 View 注入,如果該 View 沒有,就沒有吧:

這裡寫圖片描述

還有兩個 findViewById 函式來簡化查詢 View 的方式,如果上面都滿足不了你的需求,你可以用用他們:

這裡寫圖片描述

如果你是用Studio開發的,在Studio中安裝Butter Knife外掛簡單介紹如下:

2.外掛安裝

1.本人使用的是studio2.0,在點選File—>Settings—>Plugins如下:

這裡寫圖片描述

2.點選上圖紅圈處選項,在搜尋框中輸入Zelezny,如果沒有安裝右上角會提示你安裝(我的是已經安裝過的!),安裝後會提示重啟Studio,重啟即可

這裡寫圖片描述

3.Butter Knife使用

1.在bulid.gradle中新增依賴

這裡寫圖片描述

重新編譯一下該專案,通過後繼續操作。

2.具體使用(對於這樣的xml檔案)

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
    xmlns:tools="http://schemas.android.com/tools"  
    android:layout_width="match_parent"  
    android:layout_height="match_parent"  
    android:orientation="vertical"  
    android:paddingBottom="@dimen/activity_vertical_margin"  
    android:paddingLeft="@dimen/activity_horizontal_margin"  
    android:paddingRight="@dimen/activity_horizontal_margin"  
    android:paddingTop="@dimen/activity_vertical_margin"  
    tools:context=".MainActivity">  

    <TextView  
        android:id="@+id/text_veiw_tv1"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:text="TextView 1" />  

    <Button  
        android:id="@+id/button_bt1"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:text="Button1" />  

    <TextView  

        android:id="@+id/text_veiw_tv2"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:text="TextView 2" />  


    <Button  
        android:id="@+id/button_bt2"  
        android:layout_width="match_parent"  
        android:layout_height="wrap_content"  
        android:text="Button2" />  

</LinearLayout>  

在對應的Java類中的佈局處—>右鍵

這裡寫圖片描述

這裡寫圖片描述

這裡寫圖片描述

在對應的View中形成的標註如下

這裡寫圖片描述