【发布时间】:2017-11-26 21:49:20
【问题描述】:
我正在使用 RecyclerView 来显示可以选择的项目。但是,当通过 Firestore 事务更新所选项目时,选择会消失。我假设它正在对更新的项目调用 notifyItemChanged,但我不知道如何保留它的选定状态。我正在使用此代码来选择项目:
holder.itemView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
int currentPosition = holder.getLayoutPosition();
if(selectedPosition != currentPosition){
// Temporarily save the last selected position
int lastSelectedPosition = selectedPosition;
// Save the new selected position
selectedPosition = currentPosition;
// update the previous selected row
notifyItemChanged(lastSelectedPosition);
// select the clicked row
holder.itemView.setSelected(true);
}
}
});
这段代码突出显示布局:
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<!-- Color when the row is selected -->
<item android:drawable="@android:color/darker_gray" android:state_pressed="false" android:state_selected="true" />
<!-- Standard background color -->
<item android:drawable="@android:color/white" android:state_selected="false" />
</selector>
【问题讨论】:
标签: android android-recyclerview google-cloud-firestore