मेरे पास एक RecyclerView है जो एपीआई से कुछ डेटा लोड करता है, जिसमें एक छवि url और कुछ डेटा शामिल है, और मैं नेटवर्कइमेज व्यू का उपयोग आलसी लोड छवि के लिए करता हूं।
@Override
public void onResponse(List<Item> response) {
mItems.clear();
for (Item item : response) {
mItems.add(item);
}
mAdapter.notifyDataSetChanged();
mSwipeRefreshLayout.setRefreshing(false);
}
यहाँ एडाप्टर के लिए कार्यान्वयन है:
public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, final int position) {
if (isHeader(position)) {
return;
}
// - get element from your dataset at this position
// - replace the contents of the view with that element
MyViewHolder holder = (MyViewHolder) viewHolder;
final Item item = mItems.get(position - 1); // Subtract 1 for header
holder.title.setText(item.getTitle());
holder.image.setImageUrl(item.getImg_url(), VolleyClient.getInstance(mCtx).getImageLoader());
holder.image.setErrorImageResId(android.R.drawable.ic_dialog_alert);
holder.origin.setText(item.getOrigin());
}
समस्या यह है कि जब हम पुनर्नवीनीकरण दृश्य में ताज़ा होते हैं, तो यह शुरुआत में बहुत कम समय के लिए धुंधला हो जाता है जो अजीब लगता है।
मैंने इसके बजाय केवल GridView / ListView का उपयोग किया और यह मेरी अपेक्षा के अनुरूप काम किया। कोई छींटाकशी नहीं कर रहे थे।
में RecycleView के लिए विन्यास onViewCreated of my Fragment
:
mRecyclerView = (RecyclerView) view.findViewById(R.id.recyclerView);
// use this setting to improve performance if you know that changes
// in content do not change the layout size of the RecyclerView
mRecyclerView.setHasFixedSize(true);
mGridLayoutManager = (GridLayoutManager) mRecyclerView.getLayoutManager();
mGridLayoutManager.setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
@Override
public int getSpanSize(int position) {
return mAdapter.isHeader(position) ? mGridLayoutManager.getSpanCount() : 1;
}
});
mRecyclerView.setAdapter(mAdapter);
किसी को भी इस तरह की समस्या का सामना करना पड़ा? क्या कारण हो सकता है?