单击项目时,RecyclerView会更改其他项目的UI

时间:2018-04-23 13:36:16

标签: android android-recyclerview

我有一个RecyclerView,当用户点击某个项目时,RecyclerView的背景颜色会发生变化。当用户点击另一个项目时,我希望前一个选定项目的背景颜色恢复正常,并且要更改新项目的背景颜色。我该怎么做?

1 个答案:

答案 0 :(得分:1)

简单的方法是有一个全局变量,保存点击项目的位置和notifyDataSetChanged,并在onBindView比较位置,如果相等,则设置背景颜色,否则将其设置为正常。

代码段

int clickedPosition;
boolean clicked;

public void onBindView(ViewHolder holder,int position){
    //your code
    if(clicked){
    if(position == clickedPosition)
       holder.itemView.setBackgroundColor(...);
    else
       holder.itemView.setBackGroundColor(..your default color..);
    }
    holder.itemView.setOnClickListener(...){
        clickedPosition = position;
        clicked = true; 
        notifyDataSetChanged();
    }
}