Выбор ответа Senior Анимации обновлено

Flutter: анимация прозрачности

Вопрос

Как дешевле всего анимировать прозрачность большой карточки?

Попробуйте сами

Выберите вариант, и откроется разбор.

Показать ответ и разбор

Коротко

Правильный ответ: FadeTransition, которому передана анимация прозрачности. FadeTransition передаёт анимацию прямо в рендер-объект, который меняет альфу слоя: ни build, ни раскладки на каждом кадре.

Варианты ответа

  1. FadeTransition, которому передана анимация прозрачностиправильный ответ
  2. Opacity внутри AnimatedBuilder, чтобы перестраивать карточку с новым значением каждый кадр
  3. setState с пересчётом цвета каждого дочернего виджета карточки на каждом кадре
  4. Visibility с visible: false, который плавно скрывает поддерево

Разбор

FadeTransition передаёт анимацию прямо в рендер-объект, который меняет альфу слоя: ни build, ни раскладки на каждом кадре. Opacity в AnimatedBuilder перестраивает виджет, и при промежуточных значениях использует дорогой слой. Перекрашивание детей ещё дороже. Visibility просто скрывает без анимации.

Ответьте сами, а не прочитайте

В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.