2016-06-06 48 views
7

Ho appena iniziato a usare il coltello da burro.
Nel progetto, i colleghi che usano butterknife, la versione è 7.0.0.Qual è la differenza tra `@ Bind` e` @ BindView` in butterknife?

L'ho visto scrivere @Bind(R.id.tv_name).
Ma vedo butterknife versione ufficiale sito butterknife è 8.0.1, la sintassi è @BindView(R.id.tv_name)

è la sintassi è cambiato? o entrambi possono essere usati? o qualcos'altro ?
Qual è la differenza tra loro?

Non trovo la risposta su Internet
Spero che l'aiuto di tutti, grazie!

risposta

14

Sì, la sintassi è cambiata nella versione 8.0.

È possibile controllare il registro delle modifiche qui: https://github.com/JakeWharton/butterknife/blob/master/CHANGELOG.md#version-800-2016-04-25 per vedere tutte le modifiche. Ma da 7.X al 8.X il changelog è:

  • @Bind diventa (rispettivamente un punto di vista e viste multiple,) @BindView e @BindViews.
  • Le chiamate a bind ora restituiscono un'istanza Unbinder che può essere utilizzata per i riferimenti null. Sostituisce l'API unbind e aggiunge il supporto per poter cancellare gli ascoltatori.
  • Nuovo: @BindArray associa gli intervalli String, CharSequence e int e TypeArray ai campi.
  • Nuovo: @BindBitmap associa le istanze Bitmap dalle risorse ai campi.
  • @BindDrawable ora supporta un campo tint che accetta un attributo tema.
  • Il runtime e il compilatore ora sono suddivisi in due artefatti.
    compile 'com.jakewharton:butterknife:8.0.0'
    apt 'com.jakewharton:butterknife-compiler:8.0.0'

  • Nuovo: apply sovraccarichi che accettano una visione unica e le matrici di punti di vista.

  • Le regole ProGuard ora vengono spedite all'interno della libreria e vengono incluse automaticamente.
  • @Optional l'annotazione è tornata per contrassegnare i metodi come facoltativi.
+0

Grazie per i vostri sforzi! :) – iRuoBin

2

Sì, l'unica differenza tra tali parole chiave è che @Bind è stato rinominato in @BindView v8.0.0.

Si prega di notare che ButterKnife.unbind() è stato rimosso e sostituito con unoche viene restituito da bind() in modo che non vengano mantenuti riferimenti esterni.

Problemi correlati