RecycleView adapter data show wrong when scrolling too fast

Viewed 3718

I have a custom Recycle View adapter that list my items. in each Item I check database and draw some circles with colors.

when I scroll listview very fast every drawed data ( not title and texts) show wrongs! how I can manage dynamic View creation without showing wrong data?!

 @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 

}

and this is 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;
}

I also had the same problem in simple custom adapter that it's solved by moving my function place out of

if (convertView == null) {

this is the link.

2 Answers
Related