问题
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 !
回答1:
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:
@Bindbecomes@BindViewand@BindViews(one view and multiple views, respectively).- Calls to
bindnow return anUnbinderinstance which can be used tonullreferences. This replaces theunbindAPI and adds support for being able to clear listeners.- New:
@BindArraybindsString,CharSequence, andintarrays andTypeArrayto fields.- New:
@BindBitmapbindsBitmapinstances from resources to fields.@BindDrawablenow supports atintfield 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:
applyoverloads which accept a single view and arrays of views.- ProGuard rules now ship inside of the library and are included automatically.
@Optionalannotation is back to mark methods as being optional.
回答2:
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.
来源:https://stackoverflow.com/questions/37662171/what-is-the-difference-between-bind-and-bindview-in-butterknife