我正在尝试找出如何实现相同的效果
mListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
在RecyclerView实现中。请帮忙。

最佳答案

没有使用RecyclerView的“选择模式”结构的内置支持。您可以选择自己滚动或使用提供它的第三方库。
DynamicRecyclerView library提供选择模式,但是我还没有尝试过。

This sample app演示了自己实现的方法,在这种情况下,使用激活状态指示当前选择。总体模式为:

  • RecyclerView.ViewHolder检测指示选择的UI操作(单击行吗?单击行中的RadioButton等等)。
  • RecyclerView.Adapter级别跟踪选择。在我的情况下,ChoiceCapableAdapter与实现SingleChoiceMode策略的ChoiceMode类一起处理该问题。
  • 做出选择后,更新新选择的行以反射(reflect)该选择,并更新先前选择的行以反射(reflect)不再选择该行。 findViewHolderForPosition()上的RecyclerView可以在这里提供帮助-如果您跟踪最后一个选择的position,则findViewHolderForPosition()可以为您提供该选择的ViewHolder,因此您可以“取消选择”它。
  • 通过将选择置于处于管理RecyclerView的 Activity 或片段的已保存实例状态中来跟踪配置更改。
  • 10-07 19:14
    查看更多