Pass widget as reference in BindingAdapter
suggest changeLayout XML
<?xml version="1.0" encoding="utf-8"?> <layout xmlns:android="http://schemas.android.com/apk/res/android"> <data> </data> <LinearLayout android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ProgressBar android:id="@+id/progressBar" style="?android:attr/progressBarStyleSmall" android:layout_width="wrap_content" android:layout_height="wrap_content"/> <ImageView android:id="@+id/img" android:layout_width="match_parent" android:layout_height="100dp" app:imageUrl="@{url}" app:progressbar="@{progressBar}"/> </LinearLayout> </layout>
BindingAdapter method
@BindingAdapter({"imageUrl","progressbar"}) public static void loadImage(ImageView view, String imageUrl, ProgressBar progressBar){ Glide.with(view.getContext()).load(imageUrl) .listener(new RequestListener<String, GlideDrawable>() { @Override public boolean onException(Exception e, String model, Target<GlideDrawable> target, boolean isFirstResource) { return false; } @Override public boolean onResourceReady(GlideDrawable resource, String model, Target<GlideDrawable> target, boolean isFromMemoryCache, boolean isFirstResource) { progressBar.setVisibility(View.GONE); return false; } }).into(view); }
Found a mistake? Have a question or improvement idea?
Let me know.
Table Of Contents