模型包含一个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,但是浅复制会使areItemsTheSame
和areContentsTheSame
始终返回true。
所以我想知道如何将视图和模型层的数据引用分开,我以前使用过Deep Copy,但是效果也不好,因为当recyclerview删除一个时,我必须更改适配器的列表并修改模型列表,修改模型列表会导致适配器列表再次刷新,非常混乱;
其他方法,首先修改模型列表并通知适配器更新,这将丢失更新pos和动画,例如,适配器项支持水平滚动以删除和删除过滤器活动,如果更新模型,则视图将不知道原因触发项删除的方式