MediaDisplay

MediaDisplay показывает картинку или видео по адресу из переменной. Тип файла он определяет сам и ведёт себя как картинка или как видеоплеер — удобно там, где в одном месте приложения может оказаться и то и другое.

Например, его кладут в ListView для ленты активности или в GridView, где картинки и видео идут вперемешку.

Переменная передаёт адрес файла в MediaDisplay, а он решает, показать картинку или видео

Как добавить

  1. Откройте Widget Palette и добавьте MediaDisplay из раздела Base Elements.
  2. Выделите виджет и откройте панель свойств.
  3. В Media Path нажмите Set from Variable и выберите переменную с адресом картинки или видео.

Как это выглядит в редакторе:

Медиа из данных

Media Path можно взять из поля базы, ответа API, переменной состояния или любой другой переменной с адресом файла. Это особенно полезно в повторяющихся виджетах, где у каждого элемента своё медиа.

Как вывести медиа из данных в ListView или GridView:

  1. Заведите поле, в котором у каждой записи хранится адрес файла.
  2. Добавьте ListView или GridView запрос к бэкенду, который вернёт эти записи.
  3. Поместите MediaDisplay внутрь повторяющегося элемента.
  4. Выделите MediaDisplay и выберите Media Path > Set from Variable.
  5. Выберите текущую запись и поле с адресом файла.

Настройка

Какие настройки доступны, зависит от того, что показывает виджет.

Картинки

Если Media Path ведёт на картинку, настраиваются размеры, вписывание, выравнивание, рамка и прочее оформление — см. общие свойства Image.

Видео

Если Media Path ведёт на видео, настраиваются воспроизведение и внешний вид — см. VideoPlayer.

Рекомендации

  • В списке или сетке со смешанным медиа держите одинаковые размеры или пропорции.
  • Проверьте виджет на всех типах файлов, которые могут прийти из ваших данных.
  • Убедитесь, что адреса из данных рабочие и доступны пользователям приложения.
  • Решите, как будет выглядеть блок, если адрес пустой или неверный.
  • Если медиа много, проверьте скорость загрузки и плавность прокрутки.
перевод официальной документации FlutterFlow

обновлено · перевод от

⌕ ESC