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

Flutter: Hero

Вопрос

На экране списка у всех карточек Hero(tag: 'photo'). Что произойдёт при переходе?

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

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

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

Коротко

Правильный ответ: Ошибка: теги Hero на одном маршруте должны быть уникальны, например с id товара. Hero сопоставляет виджеты на двух маршрутах по tag.

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

  1. Анимация будет только у первой карточки с этим тегом, остальные Flutter пропустит
  2. Ошибка: теги Hero на одном маршруте должны быть уникальны, например с id товараправильный ответ
  3. Анимация будет у всех карточек одновременно, они слетятся в одну точку на втором экране
  4. Ничего не произойдёт: Hero молча игнорирует повторы и просто отключает анимацию

Разбор

Hero сопоставляет виджеты на двух маршрутах по tag. В пределах одного маршрута теги обязаны быть уникальны, иначе фреймворк бросит ошибку о нескольких героях с одним тегом. Обычный приём: тег из id элемента, и тот же тег на экране деталей.

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

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