All Versions
Latest Version
Avg Release Cycle
81 days
Latest Release
431 days ago

Changelog History
Page 3

  • v8.1.0 Changes

    June 14, 2016
    • New: Change the structure of generated view binders to optimize for performance and generated code. This should result in faster binding (not that it's slow) and a reduction of methods.
    • Fix: Call the correct method on TextView to unbind @OnTextChanged uses.
    • Fix: Properly handle package names which contain uppercase letters.
  • v8.0.1 Changes

    April 27, 2016
    • Fix: ProGuard rules now prevent obfuscation of only types which reference ButterKnife annotations.
    • Eliminate some of the generated machinery when referenced from final types.
  • v8.0.0 Changes

    April 25, 2016
    • @Bind becomes @BindView and @BindViews (one view and multiple views, respectively).
    • Calls to bind now return an Unbinder instance which can be used to null references. This replaces the unbind API and adds support for being able to clear listeners.
    • New: @BindArray binds String, CharSequence, and int arrays and TypeArray to fields.
    • New: @BindBitmap binds Bitmap instances from resources to fields.
    • @BindDrawable now supports a tint field which accepts a theme attribute.
    • The runtime and compiler are now split into two artifacts.

      compile 'com.jakewharton:butterknife:8.0.0'
      apt 'com.jakewharton:butterknife-compiler:8.0.0'
    • New: apply overloads which accept a single view and arrays of views.

    • ProGuard rules now ship inside of the library and are included automatically.

    • @Optional annotation is back to mark methods as being optional.

  • v7.0.1 Changes

    June 30, 2015
    • Fix: Correct ClassCastException which occurred when @Nullable array bindings had missing views.
  • v7.0.0 Changes

    June 27, 2015
    • @Bind replaces @InjectView and @InjectViews.
    • ButterKnife.bind and ButterKnife.unbind replaces ButterKnife.inject and ButterKnife.reset, respectively.
    • @Optional has been removed. Use @Nullable from the 'support-annotations' library, or any other annotation named "Nullable".
    • New: Resource binding annotations!
      • @BindBool binds an R.bool ID to a boolean field.
      • @BindColor binds an R.color ID to an int or ColorStateList field.
      • @BindDimen binds an R.dimen ID to an int (for pixel size) or float (for exact value) field.
      • @BindDrawable binds an R.drawable ID to a Drawable field.
      • @BindInt binds an ID to an int field.
      • @BindString binds an R.string ID to a String field.
    • Fix: Missing views will be filtered out from list and array bindings.
    • Note: If you are using Proguard, the generated class name has changed from being suffixed with $$ViewInjector to $$ViewBinder.
  • v6.1.0 Changes

    January 29, 2015
    • New: Support for injecting interface types everywhere that views were previously supported (e.g., Checkable).
    • Eliminate reflection-based method invocation for injection and resetting. This makes performance slightly faster (although if you are worried about the performance of Butter Knife you have other problems). The only reflection in the library is a single Class.forName lookup for each type.
  • v6.0.0 Changes

    October 27, 2014
    • New: Listeners can bind to the root view being injected by omitting a view ID on the annotation.
    • New: Exceptions thrown from missing views now include the human-readable ID name (e.g., 'button1').
    • Specifying multiple fields binding to the same ID is now considered an error.
    • findById overload for view lookup on Dialog instances.
    • Experimental: Click listeners are now globally debounced per frame. This means that only a single click will be processed per frame preventing race conditions due to queued input events.
    • Experimental: Multiple methods can bind to the same listener provided that listener's callback method does not require a return value.
  • v5.1.2 Changes

    August 01, 2014
    • Report an error if the annotations are on a class inside the android.* or java.* package. Since we ignore these packages in the runtime, injection would never work.
  • v5.1.1 Changes

    June 19, 2014
    • Fix: Correct rare ClassCastException when unwinding an InvocationTargetException.
  • v5.1.0 Changes

    May 20, 2014
    • New listener!
      • View: @OnTouch.
    • Fix: @Optional now correctly works for @InjectViews fields.
    • Fix: Correct erasure problem which may have prevented the processor from running in Eclipse.