所以,问题是我想在RecyclerView中选择第一个采访并突出显示它。这对我来说很简单,但是,当我向下滚动其他itemViews的那一刻被选中。我用位置说,嘿,高亮显示位置0。如何保持itemView保持选中状态而不选择其他ItemViews?
@Override
public void onBindViewHolder(RecyclerViewHolders holder, int position) {
if(position == 0){
holder.songAuthor.setBackgroundColor(Color.BLUE);
holder.songTitle.setText("Song Title: " + itemList.get(position).getSongTitle());
holder.songYear.setText("Song Year: " + itemList.get(position).getSongYear());
holder.songAuthor.setText("Song Author: " + itemList.get(position).getSongAuthor());
} else {
holder.songTitle.setText("Song Title: " + itemList.get(position).getSongTitle());
holder.songYear.setText("Song Year: " + itemList.get(position).getSongYear());
holder.songAuthor.setText("Song Author: " + itemList.get(position).getSongAuthor());
}
}
答案 0 :(得分:2)
RecyclerView
的关键是它回收视图-这意味着相同的ViewHolder将被共享相同视图类型的其他行多次重用。
这意味着您必须确保onBindViewHolder
将ViewHolder完全重置为正确的状态。对于您而言,您的else
需要使用您的默认颜色调用holder.songAuthor.setBackgroundColor()
,以确保重置蓝色背景。
答案 1 :(得分:-1)
我发现我所要做的所有答案就是超越此方法
@Override
public int getItemViewType(int position) {
return position;
}