Android开发之RecyclerView应用及踩坑

踩坑

1.RecyclerView 复用错乱问题
原因:其实就是当滑动时拿出来滑出屏幕的 itemView 来添加到新进来的 itemView 上,之前 itemView 的状态一直保留着,所以也就错乱了
解决办法:
1.直接关闭复用功能:

    public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
        viewHolder.setIsRecyclable(false);//关闭复用
    }

2.每次执行onBindViewHolder方法时都要重新设置所有会被更改的属性

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
        if (appInfoList.size() == 0) return;/*请忽略*/
        AppInfo appInfo = appInfoList.get(position);/*请忽略*/
        RecyclerItemViewHolder holder = (RecyclerItemViewHolder) viewHolder;/*请忽略*/
        /*以设置TextView的字体颜色为例*/
        if (appInfo.enabledConfig){
            holder.textAppName.setTextColor(Color.RED);
        }
        /*增加个else判断,不管满不满足条件,都要重新设置字体颜色,防止上次设置的字体颜色应用到本次设置*/
        else {
            holder.textAppName.setTextColor(Color.BLACK);
        }
        holder.textAppName.setText(appInfo.appName);
    }

参考

1.Android RecyclerView 复用错乱通用解法详解

你可能感兴趣的:(android开发)