У меня есть RecyclerView изображений, которые пользователь может редактировать непосредственно в самом RecyclerView.
Редактирование в порядке и работает хорошо.Это делается на растровом изображении, которое накладывает изображения, а затем сохраняет любые изменения в файл изображения.Как только пользователь прокручивает представление реселлера, растровое изображение уничтожается и становится невидимым.
Проблема в том, что любые изменения, сделанные пользователем, не видны при прокрутке.Они прокручивают СТАРОЕ изображение, а не ИЗМЕНЕННОЕ изображение.Они должны выйти из рециркулятора и вернуться в него, чтобы увидеть изменения.
Итак, как заставить RecyclerView перезагрузить только что сохраненное изображение.Я использую Glide в своем адаптере, и, как вы можете видеть, у меня кеширование, основанное на времени сохранения изображения.и принудительно перезагрузить образ?
Я использую DiffUtil на адаптере.Насколько я понимаю, мне не нужно использовать notifyDataSetChanged (), когда вы используете DiffUtil.Но я не понимаю, как вы уведомляете об изменении изображения.
Я не знаю, является ли Diff Callback проблемой.Для чего это стоит, вот оно.Он не смотрит на сам файл изображения, а только на имя файла изображения.Возможно, потому что имя не меняется, изображение не обновляется.Но я не хочу менять имя файла при каждом редактировании.
class PageDiffCallback : DiffUtil.ItemCallback<Page>() {
override fun areItemsTheSame(oldItem: Page, newItem: Page): Boolean {
return oldItem.id == newItem.id
}
override fun areContentsTheSame(oldItem: Page, newItem: Page): Boolean {
return oldItem == newItem
}
}
спасибо!
Джон