169 похожих чатов

Заметил разницу в обновлении элементов recyclerView в двух вариантах (оба

отображаются корректно), код у них идентичен:
1. обычный RV: при обновлении элемента в item_layout не видно "моргания". Т.е. если изменилась цена, то только этот элемент обновляется. Обновление через notifyDataChange
2. ListView + DiffUtil. Видно моргание при обновлении элемента. Т.е. item_layout похоже полностью перерисовывается. Обновление через .submit()

Как правильно настроить ListView, чтобы не было "моргания"?

12 ответов

37 просмотров

не использовать его

используй только ресуслер

Так вы по моему сами отвечаете на свой вопрос. Либо так его задаете.

Aleksandr- Автор вопроса
Андрей
Так вы по моему сами отвечаете на свой вопрос. Либ...

в моем понимании .submit через diffUtil.callback находит только изменившийся элемент списка и по нему перерисовывает item_layout для конкретного элемента. notifyDataSetChanged() должен делать то же самое для всего списка. Так почему при submit я вижу моргание перерисовки одного изменившегося элемента, а при notifyDataSetChanged- нет?

Aleksandr
в моем понимании .submit через diffUtil.callback н...

Скорее всего, это связано с внутренними процессами работы RecyclerView. Тоже сталкивался с таким явлением и просто обновлял весь список. Просто обновляйте список полностью и тогда моргание не заметно.

Aleksandr- Автор вопроса

хмм, я всегда считал, что ListAdapter+DiffUtil и созданы, чтобы оптимизировать обновление RV+асинхронный режим. Мне кажется, что нужно где-то что-то включить, может анимацию. Но вопрос- что именно( раньше были попроще лэйаты, поэтому ListAdapter незаметно работал. Но сейчас прям бросается в глаза

Aleksandr
хмм, я всегда считал, что ListAdapter+DiffUtil и с...

Безусловно, обновление конкретного элемента, менее ресурс затратно. Но это видно именно таким морганием. Я не слышал об каком то волшебном пункте, не моргать.

Aleksandr
хмм, я всегда считал, что ListAdapter+DiffUtil и с...

Если найдете способ, что бы на всех устройствах и во всех сценариях не моргает, поделитесь пожалуйста. Очень любопытно.

Aleksandr
хмм, я всегда считал, что ListAdapter+DiffUtil и с...

Но если вам все равно надо это использовать, то оформите это не как баг, а как фичу. По типу красивой анимации обновления, что бы привлечь внимание пользователя.

Aleksandr- Автор вопроса
Aleksandr
попробуйте rv.itemAnimator = null помогло мне

Значит это просто умышленная анимация была. Вы ее отключили. Отличный опыт. Спасибо.

там итем аниматор надо иницализировать, в гугле есть решений полно. гуглить в сторону disable item blink effect in recycler view типа того если загуглить то там есть

Похожие вопросы

Обсуждают сегодня

30500 за редактор? )
Владимир
47
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
1
Он в одиночку это дело запилил или была какая-то команда?
Aquinary
12
~ 2m21s  nix shell github:nixos/nixpkgs#stack ~  stack ghc -- --version error: … while calling the 'derivationStrict' builtin at /builtin/derivation.nix:...
Rebuild your mind.
6
Всем привет, нужна как никогда, нужна помощь с IO в загрузчике. Пишу в code16 после установки сегментных регистров, пишу вывод символа. Пробовал 2 варианта: # 1 mov $0x0E, %a...
Shadow Akira
14
Карта сайта