Android MVVM, как бороться со списком или сложный тип? - PullRequest
0 голосов
/ 10 апреля 2019

Модель содержит ссылку на ArrayList, например, под названием наблюдения

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

модель обертывает его с помощью LiveData, и модель представления хранит жилетные данные и передает их представлению View, RecyclerView содержит операцию удаления одного, добавления одного и других. Поскольку списком является мелкая копия, поэтому при изменении модели watchList представление View получит уведомление. используйте DiffUtil.Callback для обновления RecyclerView, но Shallow Copy make areItemsTheSame и areContentsTheSame всегда возвращает true.

Итак, я хочу знать, как разделить ссылки на данные слоя представления и модели, я использую Deep Copy и раньше, но это также не очень хорошо, потому что, когда recyclerview удаляет один, я должен изменить список адаптера и изменить список моделей, изменить список моделей вызовет обновление списка адаптеров, это очень грязно;

другой метод, сначала измените список моделей и сообщите об обновлении адаптера, это приведет к потере обновлений pos и анимации, например, элемент адаптера поддерживает горизонтальную прокрутку для удаления и удаления в действии фильтра, если обновление модели, представление не будет знать причину, которая триггер удаления элемента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...