Ich möchte ein Bild, wenn „pending“ wahr ist, und ein anderes Bild, wenn „pending“ falsch ist. Aber es wird ein Fehler angezeigt. Wie kann ich diese Funktionalität erreichen?
Ich antwortete hier eine gute Lösung. stackoverflow.com/a/52983092/6891563
– Khemraj Sharma
25. Oktober 2018 um 6:57 Uhr
Spark.Bao
Ich habe das versucht und es funktioniert bei mir (buildToolsVersion: 24.0.1):
benutz einfach app:imageResource ersetzen android:src, android:src="https://stackoverflow.com/questions/34607028/@{item.avatarResId}" funktioniert nicht, sonst definieren Sie eine benutzerdefinierte @BindAdapter("android:src") dafür.
aber verwenden app:imageResource muss nicht a definieren @BindAdapter zusätzlich, weil die ImageView eine aufgerufene Methode hat setImageResource()wenn Sie verwenden app:imageResourcewird es rufen setImageResource() automatisch.
Danke, es funktioniert. Ich habe gerade ersetzt android:src mit app:imageResource.
– Waldmann
22. Februar 2020 um 11:52 Uhr
danke @Spark.Bao du hast mich gerettet 😀 es funktioniert
– Aida
16. Juli 2020 um 19:56 Uhr
Wenn Sie nicht finden können app:imageResource Versuchen app:loadImageResource stattdessen.
– Hawklike
19. November 2021 um 8:37 Uhr
Denken Sie daran, hinzuzufügen<data><import type="your.package.R"/></data> im XML-Format
– Zhou Hongbo
28. März um 8:28 Uhr
qinmiao
Die Antwort:
definieren:
@BindingAdapter({"android:src"})
public static void setImageViewResource(ImageView imageView, int resource) {
imageView.setImageResource(resource);
}
Ich habe es im Recyclerview-Adapter verwendet, bei dem jedes Element dann 5 ImageView hat. Dies führt zu einer erheblichen Leistungsminderung. Denn bei jedem onBindViewHolder-Aufruf überprüft die Datenbindung if-Anweisungen. Jetzt bevorzuge ich diese Antwort
– Mohammad Reza Khahani
5. April 2020 um 6:38 Uhr
Das funktioniert bei mir nicht
– Konstantin Konopko
27. Dezember 2021 um 17:12 Uhr
yoAlex5
Wenn Sie ein Argument wie eine an die Methode übergeben möchten @IdRes Sie können verwenden
Dies funktionierte perfekt für mich. Auch bei Verwendung der Groupie-Datenbindungsbibliothek von Lisa Wray.
– Patty P
10. Oktober 2018 um 17:43 Uhr
funktioniert einfach so, wie ich es erwartet habe.
– Padma Kumar
26. Januar 2020 um 18:13 Uhr
sasikumar
Weitere Details Siehe hier EinzelheitenLaden von Bildern mit Datenbindung und Picasso
public class ProfileViewModel {
// The URL will usually come from a model (i.e Profile)
static final String IMAGE_URL = "http://cdn.meme.am/instances/60677654.jpg";
public ObservableField<Drawable> profileImage;
private BindableFieldTarget bindableFieldTarget;
public ProfileViewModel(Context context) {
profileImage = new ObservableField<>();
// Picasso keeps a weak reference to the target so it needs to be stored in a field
bindableFieldTarget = new BindableFieldTarget(profileImage, context.getResources());
Picasso.with(context)
.load(IMAGE_URL)
.placeholder(R.drawable.placeholder)
.into(bindableFieldTarget);
}
public class BindableFieldTarget implements Target {
private ObservableField<Drawable> observableField;
private Resources resources;
public BindableFieldTarget(ObservableField<Drawable> observableField, Resources resources) {
this.observableField = observableField;
this.resources = resources;
}
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
observableField.set(new BitmapDrawable(resources, bitmap));
}
@Override
public void onBitmapFailed(Drawable errorDrawable) {
observableField.set(errorDrawable);
}
@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {
observableField.set(placeHolderDrawable);
}
}
}
12987300cookie-checkSo legen Sie die Bildressource mithilfe von DataBinding auf ImageView fest [duplicate]yes
Ich antwortete hier eine gute Lösung. stackoverflow.com/a/52983092/6891563
– Khemraj Sharma
25. Oktober 2018 um 6:57 Uhr