2016-06-06 10 views
7

Ich begann gerade mit Buttermesser.
In dem Projekt, Kollegen mit Butterknife, Version ist 7.0.0.Was ist der Unterschied zwischen @ Bind und @ BindView im Buttermesser?

Ich sah ihn schreiben @Bind(R.id.tv_name).
Aber ich sehe Buttermesser offizielle Website Buttermesser Version ist 8.0.1, Syntax ist @BindView(R.id.tv_name)

Ist die Syntax geändert? oder beides kann verwendet werden? oder etwas anderes ?
Was ist der Unterschied zwischen ihnen?

Ich finde nicht die Antwort im Internet
Ich hoffe, jeder hilft, thx!

Antwort

14

Yup, die Syntax in der Version 8.0 geändert.

Sie können das Änderungsprotokoll hier überprüfen: https://github.com/JakeWharton/butterknife/blob/master/CHANGELOG.md#version-800-2016-04-25, um alle Änderungen zu sehen. Aber von 7.x auf 8.X der Changelog ist:

  • @Bind wird @BindView und @BindViews (eine Ansicht und mehrere Ansichten, respectively).
  • Aufrufe an bind geben jetzt eine Unbinder Instanz zurück, die zu null Referenzen verwendet werden kann. Dies ersetzt die unbind API und fügt Unterstützung für das Löschen von Listenern hinzu.
  • Neu: @BindArray bindet String, CharSequence und int Arrays und TypeArray zu Feldern.
  • Neu: @BindBitmap bindet Bitmap Instanzen von Ressourcen an Felder.
  • @BindDrawable unterstützt jetzt ein Feld tint, das ein Designattribut akzeptiert.
  • Laufzeit und Compiler sind jetzt in zwei Artefakte aufgeteilt.
    compile 'com.jakewharton:butterknife:8.0.0'
    apt 'com.jakewharton:butterknife-compiler:8.0.0'

  • Neu: apply Überlastungen, die eine einzige Ansicht und Anordnungen von Ansichten akzeptieren.

  • ProGuard-Regeln werden jetzt innerhalb der Bibliothek geliefert und automatisch mit einbezogen.
  • @Optional Annotation ist zurück, um Methoden als optional zu markieren.
+0

Vielen Dank für Ihre Bemühungen! :) – iRuoBin

2

Ja, der einzige Unterschied zwischen diesen Keywords ist, dass @Bind zu @BindView in V8.0.0 umbenannt wurde.

Bitte beachten Sie, dass ButterKnife.unbind() entfernt und durch eine Unbinder ersetzt wurde, die von bind() zurückgegeben wird, so dass keine externen Ansichtsreferenzen beibehalten werden.

Verwandte Themen