Выбор ответа Middle Анимации спрашивают часто обновлено

Flutter: зачем vsync

Вопрос

Зачем AnimationController требует параметр vsync?

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

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

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

Коротко

Правильный ответ: Получать от Ticker сигнал раз в кадр и не тикать, пока виджет не виден. vsync это TickerProvider.

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

  1. Чтобы синхронизировать ход анимации с сервером и другими устройствами
  2. Чтобы анимация выполнялась в отдельном изоляте и не нагружала UI-поток
  3. Это устаревший параметр, оставленный для совместимости: можно передать null
  4. Получать от Ticker сигнал раз в кадр и не тикать, пока виджет не виденправильный ответ

Разбор

vsync это TickerProvider. Ticker вызывает колбэк контроллера раз в кадр, а TickerMode отключает тикеры в невидимых частях дерева (например, в маршруте под другим экраном). Поэтому в State добавляют SingleTickerProviderStateMixin и передают this. Изолятов и сервера тут нет, а параметр обязательный.

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

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