【问题标题】:Recyclerview with FirebaseRecyclerAdapter deselects selected item when item gets updated带有 FirebaseRecyclerAdapter 的 Recyclerview 在项目更新时取消选择选定项目
【发布时间】: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


    【解决方案1】:

    我最终解决了这个问题,方法是从先前选择的项目中存储一个值并遍历所有项目,如果它们包含不理想但现在可以使用的值,则取消选择它们。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-22
      • 2013-07-19
      • 2019-04-11
      相关资源
      最近更新 更多