我对 recyclerview + mvvm 实现有一个非常具体的问题。
当我ListItem
在recyclerview 中选择a 时,点击我的viewmodel 类,该类将“isselected”标志应用于recyclerview (间接)观察到ListItem
的类。MutableLiveData
这会导致 mainactivity 中的观察者更新List<ListItem>
由 recyclerview 显示的整体。
结果是,每当我在 recyclerview 中选择一个项目时,recyclerview 都会向上滚动,(可能)因为整个列表都已更新,并且它将更新后的列表视为一个全新的列表。
如何在干净的代码中调整这种行为,最好是 mvvm 模式。
(也许是记录点击位置的解决方案,如果该位置存在,新列表会立即“滚动”到该位置。但如果可能的话,我不知道如何实现。)