android - RecyclerView 中的选择模式?

标签 android listview android-recyclerview android-checkbox

我正在想办法达到和

一样的效果

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() 在这里可以提供帮助 - 如果您跟踪最后一个选择的 positionfindViewHolderForPosition() 可以为您提供该选择的 ViewHolder,因此您可以“取消选择”它。

  • 通过将其置于管理 RecyclerView 的 Activity 或 fragment 的已保存实例状态,跟踪配置更改中的选择。

关于android - RecyclerView 中的选择模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28651761/

相关文章:

java - 在android上使用SQLITE出现列约束错误

android - Fragment 中带有自定义适配器的 ListView

android - 回收站以编程方式查看给定位置的 "modify"项目

android - 如何在android中的listview中获取所选项目的索引和字符串

android - ListView 可以包含 fragment 吗

android - RecyclerView如何实现OnClickListener?

android - 如何控制 recyclerview 中的其他项目?

java - 如何修复 `android.app.Application cannot be cast to` 错误

c# - Android 到 Web 服务。未传递的值

android - 如何将项目符号列表添加到android应用程序?