Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What is the difference between `@Bind` and `@BindView` in butterknife?

I Just started using butterknife.
In the project, colleagues using butterknife, version is 7.0.0.

I saw him write @Bind(R.id.tv_name).
But I see butterknife official website butterknife version is 8.0.1, syntax is @BindView(R.id.tv_name)

Is syntax changed ? or both can be used ? or something else ?
What is the difference between them ?

I not find the answer on the Internet
I hope everyone's help, thx !

like image 384
iRuoBin Avatar asked Jun 06 '16 16:06

iRuoBin


2 Answers

Yes, the only difference between those keywords is that @Bind was renamed to @BindView in v8.0.0.

Please note that ButterKnife.unbind() was removed, and replaced with an Unbinder that's returned by bind() so that no external view references are retained.

like image 99
EpicPandaForce Avatar answered Sep 29 '22 11:09

EpicPandaForce


Yup, the syntax changed in the version 8.0.

You can check the changelog here: https://github.com/JakeWharton/butterknife/blob/master/CHANGELOG.md#version-800-2016-04-25 to see al the changes. But from 7.X to 8.X the changelog is:

  • @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.
like image 26
Sandro Machado Avatar answered Sep 29 '22 12:09

Sandro Machado