简体   繁体   English

从顶部滚动到底部时,Listview图像变得混乱

[英]Listview Images gets shuffled when scrolled from top to bottom

I have a custom list view adapter, and when I scroll down/up the list, images get shuffled and I don't know what to do. 我有一个自定义列表视图适配器,当我向下/向上滚动列表时,图像会被打乱,并且我不知道该怎么办。 How to solve this problem? 如何解决这个问题呢?

public View getView(int position, View convertView, ViewGroup parent) {
    DataModel dataModel = getItem(position);
    ViewHolder viewHolder;
    if (convertView == null) {

      convertView=LayoutInflater.from(mContext).inflate(R.layout.list_item, parent, false);

        viewHolder = new ViewHolder();
        viewHolder.letter = convertView.findViewById(R.id.tvFirstt);
        viewHolder.name = convertView.findViewById(R.id.nameview);
        viewHolder.contact =convertView.findViewById(R.id.contactview);
        viewHolder.profileimg=convertView.findViewById(R.id.profileimg);
        viewHolder.chkSelect = convertView.findViewById(R.id.checkbox);
        viewHolder.detail = convertView.findViewById(R.id.detail);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();

    }


        viewHolder.name.setText(dataModel.fname + " " + dataModel.lname);
        viewHolder.contact.setText(dataModel.landline);
        viewHolder.detail.setImageResource(R.drawable.right);
        viewHolder.chkSelect.setTag(position);
        viewHolder.chkSelect.setChecked(dataModel.isChecked);

        viewHolder.chkSelect.setOnCheckedChangeListener(this);
        if (dataModel.image == null) {
            viewHolder.letter.setVisibility(View.VISIBLE);
            viewHolder.letter.setText(dataModel.fname.substring(0, 1));
        } else {
            viewHolder.profileimg.setVisibility(View.VISIBLE);
            viewHolder.profileimg.setImageBitmap(convertToBitmap(dataModel.image));
        }

    } else {
        Log.e("Error", "Please see again");
    }

    convertView.setTag(viewHolder);
    return convertView;
}

you were not resetting the image 您没有重置图像

public View getView(int position, View convertView, ViewGroup parent) {
    DataModel dataModel = getItem(position);
    ViewHolder viewHolder;
    if (convertView == null) {

      convertView=LayoutInflater.from(mContext).inflate(R.layout.list_item, parent, false);

        viewHolder = new ViewHolder();
        viewHolder.letter = convertView.findViewById(R.id.tvFirstt);
        viewHolder.name = convertView.findViewById(R.id.nameview);
        viewHolder.contact =convertView.findViewById(R.id.contactview);
        viewHolder.profileimg=convertView.findViewById(R.id.profileimg);
        viewHolder.chkSelect = convertView.findViewById(R.id.checkbox);
        viewHolder.detail = convertView.findViewById(R.id.detail);
    } else {
        viewHolder = (ViewHolder) convertView.getTag();

    }


        viewHolder.name.setText(dataModel.fname + " " + dataModel.lname);
        viewHolder.contact.setText(dataModel.landline);
        viewHolder.detail.setImageResource(R.drawable.right);
        viewHolder.chkSelect.setTag(position);
        viewHolder.chkSelect.setChecked(dataModel.isChecked);

        viewHolder.chkSelect.setOnCheckedChangeListener(this);
        if (dataModel.image == null) {
            viewHolder.letter.setVisibility(View.VISIBLE);
            viewHolder.letter.setText(dataModel.fname.substring(0, 1));
            //I have added this
            viewHolder.profileimg.setImageBitmap(null);
        } else {
            viewHolder.profileimg.setVisibility(View.VISIBLE);
            viewHolder.profileimg.setImageBitmap(convertToBitmap(dataModel.image));
        }

    } else {
        Log.e("Error", "Please see again");
    }

    convertView.setTag(viewHolder);
    return convertView;
}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 使用ViewHolder滚动ListView时,图像被随机播放 - Images were Shuffled when scrolling a ListView with a ViewHolder 列表视图中的开关在滚动时自动获得检查 - Switches in listview automatically gets check when scrolled 将listview滚动时,viewpager固定在活动顶部 - viewpager fixed to top of activity when listview scrolled 如何知道用户是否滚动到列表视图/滚动视图的顶部或底部 - How to know if the user has scrolled to the top or bottom of a listview/scrollview 当我在列表视图中滚动时,ListView-图像会被拖曳或更改 - ListView -images get shuffled or changed when i scroll in list view 从列表视图的顶部到底部拖动项目时如何提高速度? - How to increase speed when drag item from top to bottom of listview? 在列表视图中切换时滚动时自动获取检查android - Switches in listview automatically gets check android when scrolled 滚动时会随机选择使用SimpleCursorAdapter的ListVIew中的CheckBox - CheckBox in ListVIew Using SimpleCursorAdapter gets randomly selected when scrolled 滚动到底部android时,listview中的LoadMore清除上一项? - LoadMore in listview clears previous item when scrolled at bottom android? 图像从顶部滚动到底部时显示,但是在gridview中从底部滚动到顶部时将图像删除? - Images are showing when it's scrolling from top to bottom but removing when I am scrolling it bottom to top in gridview?
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM