я использую DataBinding
для привязки изображения в RecyclerView пункта как код ниже, то это сделать мерцание изображения, когда я перезагрузить все RecyclerView (по notifyDataSetChange)
Если я не использую DataBinding
и просто установите изображение нормально, изображение не мерцает Что я сделал не так с DataBinding
? Любая помощь или предложение было бы большим оцененнымМерцание изображения при привязке изображения в RecyclerView элементе с помощью Databinding
Моего RecyclerView адаптера кода
public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.MyViewHolder> {
private Context mContext;
private List<String> list;
public static class MyViewHolder extends RecyclerView.ViewHolder {
ItemBinding mBinding;
public MyViewHolder(ItemBinding mBinding) {
super(mBinding.getRoot());
this.mBinding = mBinding;
mBinding.setViewHolder(this);
}
public int getSrc(){
return R.drawable.ic_launcher;
}
}
public RecyclerViewAdapter(Context context, List<String> moviesList) {
this.mContext = context;
this.list = moviesList;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
ItemBinding binding =
DataBindingUtil.inflate(LayoutInflater.from(parent.getContext()), R.layout.item,
parent, false);
return new MyViewHolder(binding);
}
@Override
public void onBindViewHolder(MyViewHolder holder, int position) {
}
@Override
public int getItemCount() {
return list.size();
}
@BindingAdapter({ "src" })
public static void setImageSrc(ImageView view, int src) {
if (src != -1) view.setImageResource(src);
}
}
Моего деталь XML
<layout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
>
<data>
<variable
name="viewHolder"
type="example.toong.testreloadimageusingglidebynotifydatasetchangewithdatabinding.RecyclerViewAdapter.MyViewHolder"
/>
</data>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/bg_holding_three_gradient_layer"
android:orientation="vertical">
<ImageView
android:id="@+id/imageView"
android:layout_width="100dp"
android:layout_height="100dp"
app:src="@{viewHolder.src}"
/>
</LinearLayout>
</layout>
Демо Проект: https://drive.google.com/file/d/0B_poNaia6t8kVlBfSGJ4QU9uZHc/view
образы сети изображения? кеширование и загрузка? – OBX
@OBX это просто изображение в файле (ic_launcher), которое вы можете увидеть в моем коде. 'app: src =" @ {viewHolder.src} "и' public int getSrc() { return R.drawable.ic_launcher; } ' –
Вы попробовали с библиотекой для загрузки изображений? Как пикассо? Может быть, это должно помочь – OBX