- 在
RecyclerView.Adapter
中定义变量记录被点击位置
private int mSelectedPosition;
public void setSelectedPosition(int position) {
mSelectedPosition = position;
}
- 在RecyclerView的点击事件中设置点击位置
ItemClickSupport.addTo(rv).setOnItemClickListener(new ItemClickSupport.OnItemClickListener() {
@Override public void onItemClicked(RecyclerView recyclerView, int position, View v) {
mAdapter.setSelectedPosition(position); // 在Adapter中记录当前位置
mAdapter.notifyDataSetChanged();
mSelectedPosition = position; // 在当前上下文记录点击的位置
}
});
- 在
RecyclerView.Adapter
中对记录的点击位置进行处理
@Override public void onBindViewHolder(final ItemHolder holder, final int position) {
...
...
if (mSelectedPosition != position) { // 设置当前被点击位置的条目控件效果等
holder...
} else {
holder...
}
}