Почему баннер Yandex Ads мигает в LazyColumn — и при чём здесь AndroidView.onReset

Представьте обычный feed на LazyColumn: новости, карточки, между ними рекламный баннер. Баннер загрузился, пользователь пролистал его вниз, затем вернулся обратно, и мерцание реклама грузится заново.

Ещё раз вниз. Ещё раз вверх. Ещё одно мерцание и загрузка.

На первый взгляд причина кажется очевидной: item покидает экран, rememberBannerAdState теряет состояние, Compose создаёт всё заново. Значит, достаточно сохранить BannerAdState за пределами item и проблема исчезнет.

Я тоже так подумал.

Не исчезла.
Мерцания остались.

С этого момента простой баг (?) интеграции Yandex Ads превратился для меня в небольшое расследование: пришлось разобраться, что на самом деле происходит с item внутри LazyColumn, как SubcomposeLayout переиспользует composition, почему это ещё не означает переиспользование AndroidView и какой lifecycle поверх всего этого построил Compose API Yandex Ads.

В итоге вопрос "почему баннер моргает?" оказался гораздо интереснее самого workaround.

Читать далее

Дата
24 августа 2026
Источник
https://habrahabr.ru/