Android MVVM如何处理列表或复杂类型?

时间:2019-04-10 06:57:20

标签: android mvvm

模型包含一个ArrayList引用,例如称为监视列表

List<StockRealtime> watchList=new ArrayList<>();
MutableLiveData<List> liveData=new MutableLiveData<>();
liveData.postValue(watchList);

模型由一个LiveData包裹起来,而viewmodel则将livedata保留给View,RecyclerView包含删除,添加One和其他操作。由于列表是Shallow Copy,所以当模型更改watchList时,View会得到通知,我 使用DiffUtil.Callback来更新RecyclerView,但是浅复制会使areItemsTheSameareContentsTheSame始终返回true。

所以我想知道如何将视图和模型层的数据引用分开,我以前使用过Deep Copy,但是效果也不好,因为当recyclerview删除一个时,我必须更改适配器的列表并修改模型列表,修改模型列表会导致适配器列表再次刷新,非常混乱;

其他方法,首先修改模型列表并通知适配器更新,这将丢失更新pos和动画,例如,适配器项支持水平滚动以删除和删除过滤器活动,如果更新模型,则视图将不知道原因触发项删除的方式

0 个答案:

没有答案