AndroidRecyclerView在滚动时将文本更改为图像
创始人
2024-10-09 18:01:30
0

这是由于RecyclerView中的item重用机制造成的。当您向上或向下滚动时,第一屏中的项目会被回收并重用在屏幕上方或下方的项目中。因此,您需要在适配器getView方法中清除任何原始值或设置默认值。

以下是一个示例适配器类,该类缓存以前的ViewHolder并清除任何未设置的文本或图像视图:

public class MyAdapter extends RecyclerView.Adapter {

    private List mModelList;
    private LayoutInflater mInflater;

    public MyAdapter(Context context, List modelList) {
        mInflater = LayoutInflater.from(context);
        mModelList = modelList;
    }

    @Override
    public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = mInflater.inflate(R.layout.my_item, parent, false);
        return new MyViewHolder(view);
    }

    @Override
    public void onBindViewHolder(MyViewHolder holder, int position) {
        MyModel model = mModelList.get(position);

        if (holder.tvName != null) {
            holder.tvName.setText(model.getName());
        }

        if (holder.ivImage != null) {
            holder.ivImage.setImageResource(0);
            if (model.getImageResId() != 0) {
                holder.ivImage.setImageResource(model.getImageResId());
            }
        }
    }

    @Override
    public int getItemCount() {
        return mModelList.size();
    }

    class MyViewHolder extends RecyclerView.ViewHolder {

        private TextView tvName;
        private ImageView ivImage;

        MyViewHolder(View itemView) {
            super(itemView);

            tvName = itemView.findViewById(R.id.tv_name);
            ivImage = itemView.findViewById(R.id.iv_image);
        }
    }
}

在上面的示例中,我们使用if语句检查视图是否为null,并在存在时设置视图的值。如果视图不存在,则不会尝试更改它的值。在ivImage视图上,我们先清除当前资源ID,然后仅在存在模型图像资源ID时才

相关内容

热门资讯

黑科技讲解!gg扑克可以赢不了... 黑科技讲解!gg扑克可以赢不了(微扑克ai机器人)一贯是真的有挂(有挂方略)-哔哩哔哩1、下载好微扑...
黑科技科技!约局吧辅助工具获取... 黑科技科技!约局吧辅助工具获取方法(wepoke辅助插件)原本真的是有挂(确实有挂)-哔哩哔哩1、实...
黑科技最新!aapoker透视... 黑科技最新!aapoker透视辅助(wpk到底有没有外挂)原本真的有挂(有挂猫腻)-哔哩哔哩;小薇(...
黑科技模拟器!wpk外挂第一视... 黑科技模拟器!wpk外挂第一视角(德州ai软件购买)原来真的有挂(有挂头条)-哔哩哔哩德州ai软件购...
黑科技智能ai!德州竞技联盟辅... 黑科技智能ai!德州竞技联盟辅助(德州ai辅助)一贯真的是有挂(有挂细节)-哔哩哔哩;一、德州ai辅...
黑科技挂!wepokeai机器... 黑科技挂!wepokeai机器人(德扑ai智能机器人)切实是有挂(揭秘有挂)-哔哩哔哩1.德扑ai智...
黑科技肯定!德扑之星软件(aa... 黑科技肯定!德扑之星软件(aapoker真的有猫腻吗)总是是真的有挂(果真有挂)-哔哩哔哩1、完成a...
黑科技真的!德州之星有机器人(... 您好,德州ai辅助软件这款游戏可以开挂的,确实是有挂的,需要了解加威信【136704302】很多玩家...
黑科技攻略!wepoke有插件... 1、黑科技攻略!wepoke有插件(wepoke透明黑科技)确实有挂(确实有挂)-哔哩哔哩;该软件可...
黑科技神器!we-poker有... 黑科技神器!we-poker有挂(wepoke黑科技)都是是真的有挂(存在有挂)-哔哩哔哩wepok...