引用: http://yslibrary.net/2015/06/29/how-to-migrate-to-butterknife-7/
ButterKnife 7.0への移行ガイド
2015/06/28、ButterKnifeの7.0.0がリリースされました。
6.x系からAPIの変更が何点かあるので、簡単に移行手順をまとめます
アノテーション
@InjectView/@InjectViews
-> @Bind
Viewを変数にひもづけるアノテーションが、@Bind
に変更になりました。
複数の場合も@Bind
です。とりあえず全部置換しましょう。
@Optional
の廃止
レイアウトに存在しないかもしれないViewの時、今までは@Optional
を利用していましたが、7.0からは@Nullable
を使います。support-annotationsライブラリの@Nullable
でも、別のライブラリの@Nullable
でも構わないようです。
メソッド名
下記のように変更になっています。
ButterKnife.inject
-> ButterKnife.bind
ButterKnife.reset
-> ButterKnife.unbind
余談ですが、Fragmentの場合はonDestroyView
でButterKnife.unbind
するようにしましょう。
Githubでソース見てると忘れてるものを偶に見かけます。
Proguard設定
ButterKnifeによって自動生成されるクラス名がFooActivity$$ViewInjector
からFooActivity$$ViewBinder
に変更されたので、Proguard設定も変える必要があります。
下記のようになります。
-keep class butterknife.** { *; }
-dontwarn butterknife.internal.**
-keep class **$$ViewBinder { *; }
-keepclasseswithmembernames class * {
@butterknife.* <fields>;
}
-keepclasseswithmembernames class * {
@butterknife.* <methods>;
}
新しく追加された機能
Resource Binding
stringやbool, color等のxmlに定義されたリソースを変数にバインド出来るようになりました。
下記のアノテーションを使います。
-
@BindBool
:R.bool
をboolean
にバインド -
@BindColor
:R.color
をint/ClorStateList
にバインド -
@BindDimen
:R.dimen
をint
(ピクセルサイズ)あるいはfloat
(正確な数値)にバインド -
@BindDrawable
:R.drawable
をDrawable
にバインド -
@BindInt
:R.int
をint
にバインド -
@BindString
:R.string
をString
にバインド
こちらからは以上です。
参考: butterknife/CHANGELOG.md at master · JakeWharton/butterknife