如何突出显示RecyclerView中的第一个项目并仅保持选中该选中的项目?

时间:2019-07-28 00:45:14

标签: android android-recyclerview recycler-adapter

所以,问题是我想在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());
        }
    }

2 个答案:

答案 0 :(得分:2)

RecyclerView的关键是它回收视图-这意味着相同的ViewHolder将被共享相同视图类型的其他行多次重用。

这意味着您必须确保onBindViewHolder将ViewHolder完全重置为正确的状态。对于您而言,您的else需要使用您的默认颜色调用holder.songAuthor.setBackgroundColor(),以确保重置蓝色背景。

答案 1 :(得分:-1)

我发现我所要做的所有答案就是超越此方法 @Override public int getItemViewType(int position) { return position; }