美文网首页
RecyclerView点击选中Item,加上背景,点击其他It

RecyclerView点击选中Item,加上背景,点击其他It

作者: 耀东wang | 来源:发表于2018-07-11 14:31 被阅读0次

    解决思路如下,
    记录两个位置,当前选中以及上次选中的Item的位置,并记录Item是否选中,那么在Adapter中我们只需要根据Item是否选中来设置它的背景色。
    具体代码如下:

                   ListItem listItem = generateAdapter.getData().get(position);
                    //listItemTemp 上一个选中   listItem 当前选中
    
                   if (listItemTemp != null && lastIndex !=-1){
                       listItemTemp.setSelect(false);
                       generateAdapter.notifyItemChanged(lastIndex);
                   }
    
                   lastIndex = position;
    
                   listItem.setSelect(true);
                   generateAdapter.notifyItemChanged(position);
    
                   listItemTemp = listItem;
    

    listItemTemp记录上一个选中,listItem是当前选中,lastIndex是上一个Item的坐标,position是当前选中Item的坐标。然后Adapter只更新相对应的坐标。

    Adapter只更新只做了相对应改变的那一项,Adapter中的更新代码如下:

     if (!listItem.isSelect()){
                viewHolder.relativeLayout.setBackgroundColor(Color.WHITE);
            }else {
                viewHolder.relativeLayout.setBackgroundColor(Color.parseColor("#ff00ff"));
            }
    

    当然我们在这里将数据模型中增加了一个记录是否选中的方法:

    public boolean isSelect() {
            return select;
        }
    
        public void setSelect(boolean select) {
            this.select = select;
        }
    

    相关文章

      网友评论

          本文标题:RecyclerView点击选中Item,加上背景,点击其他It

          本文链接:https://www.haomeiwen.com/subject/gkjqpftx.html