我正在想办法达到和
一样的效果mListView.setChoiceMode(ListView.CHOICE_MODE_SINGLE);
在 RecyclerView 实现中。请帮忙。
最佳答案
RecyclerView
没有对“选择模式”结构的内置支持。您的选择是自己滚动或使用提供它的第三方库。
DynamicRecyclerView library提供选择模式,但我没有尝试过。
This sample app演示自己实现它,在这种情况下使用激活状态来指示哪个是当前选择。整体格局是:
让您的
RecyclerView.ViewHolder
检测指示选择的 UI 操作(单击一行?单击该行中的RadioButton
?等等) .在
RecyclerView.Adapter
级别跟踪选择。在我的例子中,ChoiceCapableAdapter
与实现ChoiceMode
策略的SingleChoiceMode
类一起处理。当做出选择时,更新新选择的行以反射(reflect)选择并且更新先前选择的行以反射(reflect)它不再被选择。
RecyclerView
上的findViewHolderForPosition()
在这里可以提供帮助 - 如果您跟踪最后一个选择的position
,findViewHolderForPosition()
可以为您提供该选择的ViewHolder
,因此您可以“取消选择”它。通过将其置于管理
RecyclerView
的 Activity 或 fragment 的已保存实例状态,跟踪配置更改中的选择。
关于android - RecyclerView 中的选择模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28651761/