У меня есть пользовательский адаптер Recycle View, который перечисляет мои элементы. в каждом элементе я проверяю базу данных и рисую несколько кругов с цветами.Данные адаптера RecycleView показывают неправильную прокрутку слишком быстро
, когда я прокручиваю список очень быстро, все полученные данные (не название и текст) показывают ошибки! Как я могу управлять динамическим представлением вида без отображения неправильных данных ?!
@Override
public void onBindViewHolder(final ItemViewHolder itemViewHolder, int i) {
itemViewHolder.date.setText(items.get(i).getData()); // set the title
itemViewHolder.relative_layout_tag_place.addView(generateTagImages(items.get(i).getServerId())); // had to generate a Relativelaout with
}
и это importMenuTags():
private RelativeLayout generateTagImages(String serverId) {
List<String> color_list = new ArrayList<>();
RelativeLayout result = new RelativeLayout(context);
List<String> list = db.getCardTags(serverId);
int i = 0;
for (String string : list) {
RelativeLayout rl = new RelativeLayout(context);
color_list.add(get_the_proper_color);
Drawable drawable = context.getResources().getDrawable(R.drawable.color_shape);
drawable.setColorFilter(Color.parseColor(dao.getTagColor(string)), PorterDuff.Mode.SRC_ATOP);
RelativeLayout.LayoutParams lparams = new RelativeLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT);
lparams.addRule(RelativeLayout.ALIGN_PARENT_START);
lparams.setMargins(i, 0, 0, 0);
lparams.width = 35;
lparams.height = 35;
rl.setLayoutParams(lparams);
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN) {
rl.setBackground(drawable);
} else {
rl.setBackgroundDrawable(drawable);
}
result.addView(rl);
i = i + 25;
}
return result;
}
я была такая же проблема в простой пользовательский адаптер, это решается путем перемещения моей функции место из
if (convertView == null) {
это link.
Я думаю, что это нехорошо, потому что мы используем переработку в точности, чтобы переработать наши представления и улучшить управление памятью. спасибо за ответ, но проверьте @Mahendra Ответ, и я думаю, вам нужно было сделать вот так. – Kenji
Я уже пробовал, но не работал в моем потоке .. так что это сработало –
работал для меня, но если у нас есть большой список, то это не очень хороший вариант для управления памятью. но ведь хороший ответ – user3530687