butterknife中`@ Bind`和`@ BindView`有什么区别?

我刚开始使用黄油刀
在项目中,使用butterknife的同事版本是7.0.0。

我看到他写@Bind(R.id.tv_name)
但是我看到butterknife官网的@BindView(R.id.tv_name)版本是8.0.1,语法是@BindView(R.id.tv_name)

语法是否改变? 或者两者都可以使用? 或者是其他东西 ?
他们有什么区别?

我在互联网上找不到答案
希望大家的帮助,thx!

Solutions Collecting From Web of "butterknife中`@ Bind`和`@ BindView`有什么区别?"

是的,语法在版本8.0中改变。

您可以在这里查看更新日志: https : //github.com/JakeWharton/butterknife/blob/master/CHANGELOG.md#version-800-2016-04-25查看更改。 但从7.X到8.X,更新日志是:

  • @Bind变成了@BindView@BindViews (分别是一个视图和多个视图)。
  • 调用bind现在返回一个可用于null引用的Unbinder实例。 这取代了unbind API,并增加了对清除侦听器的支持。
  • 新增function: @BindArrayStringCharSequenceint数组以及TypeArray到字段。
  • 新增function: @BindBitmapBitmap实例从资源绑定到字段。
  • @BindDrawable现在支持一个接受主题属性的tint字段。
  • 运行时和编译器现在分成两个工件。
    compile 'com.jakewharton:butterknife:8.0.0'
    apt 'com.jakewharton:butterknife-compiler:8.0.0'

  • 新增function: apply接受单个视图和视图数组的重载。

  • ProGuard规则现在在库内部发货,并自动包含在内。
  • @Optional注释返回标记方法是可选的。

是的,这些关键字之间的唯一区别在于@BindView@Bind被重命名为@BindView

请注意, ButterKnife.unbind()已被移除,并被bind()返回的Unbinder所取代,以便不保留外部视图引用。