Выбор ответа Middle Анимации спрашивают часто обновлено
Flutter: зачем vsync
Вопрос
Зачем AnimationController требует параметр vsync?
Попробуйте сами
Выберите вариант, и откроется разбор.
Показать ответ и разбор
Коротко
Правильный ответ: Получать от Ticker сигнал раз в кадр и не тикать, пока виджет не виден. vsync это TickerProvider.
Варианты ответа
- Чтобы синхронизировать ход анимации с сервером и другими устройствами
- Чтобы анимация выполнялась в отдельном изоляте и не нагружала UI-поток
- Это устаревший параметр, оставленный для совместимости: можно передать
null - Получать от
Tickerсигнал раз в кадр и не тикать, пока виджет не виденправильный ответ
Разбор
vsync это TickerProvider. Ticker вызывает колбэк контроллера раз в кадр, а TickerMode отключает тикеры в невидимых частях дерева (например, в маршруте под другим экраном). Поэтому в State добавляют SingleTickerProviderStateMixin и передают this. Изолятов и сервера тут нет, а параметр обязательный.
Ответьте сами, а не прочитайте
В тренажёре вопрос попадёт в повторения и вернётся, когда начнёт забываться. Плюс билеты с зачётом: 20 вопросов, не больше 2 ошибок.