в лейзи листе сильно флингануть и во время анимации флинга новые айтемы не успеют закомпоузиться за один кадр, то начинается слайдшоу?
И может заодно кто нибудь разбирается, что в такой же ситуации делает ресайклер, если в время анимации флинга не получилось за один кадр создать новых вьюхолдеров
В дебаг моде?
Вообще, мне тоже интересно, в релиз моде на +- новых телефонах норм, а вот в остальных случаях остаётся желать лучшего По поводу ресайклера, могу ошибаться, но он не столько создаёт, а переиспользует холдеры, которые с экрана пропали, там с этим проще(но это не точно)
да есть такое, и плавность скроллинга animateScrollToItem оставляет желать лучшего, но сейчас сюда придёт @desugar и скажет тебе, что сам по себе лези колумн не лагает, лагает контент в нем
Я отптимизировал контент по максимуму, лишних рекомпозиций 0. Уже точно не помню, но в профайлере flame chart показывал, что где-то 60% времени проходило в обсчёте текста (контент у меня два-три Text, пара Icon и всё), хотя я в профилировал в дебаге, не знал про profileable тег Проблема то в чём. FlingBehavior дефолтный просто запускает анимацию, которая в колбеке дёргает scrollBy. А анимации в компоузе хитрые, они “stateless” и не зависят от скипа кадров - просто по формуле вычиляют анимируемое число в зависиомсти от того, сколько времени прошло от старта анимации. И в случае с LazyList если девайс слабый и скипнул кадр - в следующем нужно закомпозировать 2 элемента, девайс скипает уже 2 кадра, в следующем нужно композить уже 4 элемента, и так далее, в конце концов в каждом кадре тупо происходит с нуля композиция всех элементов на экране, отсюда и слайдшоу
Обсуждают сегодня