Виджет StaggeredView отображает список элементов в виде ступенчатой сетки.
Например, вы можете использовать StaggeredView для отображения списка фотографий, подобно приложению Pinterest.

Добавление StaggeredView
Чтобы создать простой StaggeredView с некоторыми изображениями:
- Сначала перетащите виджет StaggeredView с вкладки Layout Elements (в панели виджетов) или добавьте его
- Теперь добавьте несколько виджетов Image. Снова перетащите их с вкладки Layout Elements или добавьте непосредственно из дерева виджетов. Примечание: Чтобы увидеть эффект ступенчатого вида, попробуйте
- удалить высоту всех изображений или задать разную высоту каждому изображению.

Включить функцию «Потянуть за обновление
Чтобы включить функцию pull to refresh на этом виджете, следуйте инструкциям здесь.
Показ данных из бэкенда
Вероятно, вы хотите показать список элементов из бэкенда. Есть два основных источника, из которых вы можете получить данные.
- Показывать данные из Firestore
- Показывать данные из вызова API
Отображение данных из Firestore
Чтобы показать данные из Firestore, создайте коллекцию, сделайте запрос к коллекции, а затем отобразите данные в виджете Image.


Отображение данных из вызова API
Возможно, вы используете собственную инфраструктуру для хранения данных вашего приложения. Давайте посмотрим, как можно отобразить данные, полученные с помощью вызовов API.

Отображение данных из вызовов API включает в себя следующие шаги:
- Предварительные условия
- Выполнение вызова API на StaggeredView
- Генерация динамических дочерних элементов
- Отображение данных в элементах пользовательского интерфейса
Предварительные условия
Прежде чем показывать данные, полученные в результате вызова API, убедитесь, что вы выполнили все упомянутые предварительные условия.
- Будьте знакомы с вызовами API.
- Добавьте вызовы API в проект FlutterFlow.
После добавления вызова API в FlutterFlow он выглядит следующим образом:

Генерация динамических дочерних элементов
Генерация динамических дочерних элементов поможет вам подготовить список элементов, присутствующих в ответе API. Возвращенный результат сохраняется в переменной, которую вы можете использовать для заполнения StaggeredView.
Чтобы создать динамические дочерние элементы:
- Выберите StaggeredView в дереве виджетов или в области холста.
- Перейдите на вкладку Generate Dynamic Children (в правой части экрана).
- Введите соответствующее имя переменной.
- Установите значение Source на [apicall_name] Response (из StaggeredView).
- Установите для параметра Response Options значение JSON Body.
- В разделе Доступные параметры нажмите на Сбросить и выберите Путь JSON.
- Внутри JSON Path введите выражение JSON для получения списка. Как получить JSON Path, смотрите здесь.
- Нажмите Подтвердить.

Выполнение вызова API на StaggeredView
Вызов API позволяет получить ответ (содержащий список элементов) и показать их в StaggeredView.
Чтобы выполнить вызов API на StaggeredView:
- Выберите виджет StaggeredView в дереве виджетов или в области холста.
- Перейдите на вкладку Backend Query (в правой части экрана).
- Установите для параметра Тип запроса значение Вызов API.
- Установите Call Name (Имя вызова) на имя API, которое извлекает данные.
- Нажмите кнопку Подтвердить.

Отображение данных в элементах пользовательского интерфейса
Чтобы показать изображение из URL, хранящегося внутри переменной.
- Выберите виджет Image, перейдите на панель свойств, найдите свойство Path и нажмите на текст Set from Variable.
- Выберите элемент [имя_переменной] из списка. Это должно быть имя переменной, которое вы указали при генерации дочерних элементов из переменной.
- Установите для параметра Available Options значение JSON Path.
- Внутри JSON Path введите выражение JSON для получения URL изображения. Как получить JSON Path, смотрите здесь.
- Нажмите кнопку Подтвердить.

Добавление бесконечной прокрутки
Виджет StaggeredView отлично подходит для приложений с большим количеством изображений разного размера, например, для макета Pinterest. Он размещает все в аккуратной и интересной форме.
Для улучшения пользовательского восприятия можно добавить функцию «бесконечной прокрутки». Это означает, что по мере прокрутки новые изображения будут появляться без необходимости нажимать кнопку «Далее».
Мы уже рассказывали о том, как добавить бесконечную прокрутку в виджет ListView, что даст вам общее представление о том, как добавить бесконечную прокрутку и в виджет StaggeredView.
Настройка
Вы можете настроить внешний вид и поведение виджета с помощью различных свойств, доступных на панели свойств.
Изменение количества элементов по поперечной оси
Счетчик поперечных осей означает количество элементов, отображаемых в горизонтальном направлении. По умолчанию StaggeredView отображает два элемента в ряд (т.е. в горизонтальном направлении).
Чтобы изменить значение по умолчанию Cross Axis Count:
- Выберите StaggeredView в дереве виджетов или в области холста.
- Перейдите на панель свойств и прокрутите вниз до раздела Свойства StaggeredView.
- Измените значение поля ввода Cross Axis Count.

Когда вы добавляете StaggeredView в свой проект FlutterFlow, по умолчанию он добавляет пространство в 10px по поперечной оси и главной оси. Это означает, что StaggeredView будет вставлять пространство в 10px по горизонтали и 10px по вертикали между элементами.
Чтобы изменить расстояние между элементами:
- Выберите StaggeredView в дереве виджетов или в области холста.
- Перейдите на панель свойств и прокрутите вниз до раздела Свойства StaggeredView.
- Измените значение параметра Расстояние между осями.
- Измените значение параметра «Расстояние между осями«.

Добавить подкладку
Здесь приведены инструкции по добавлению подкладок.
Настроить выравнивание
Здесь приведены инструкции по настройке выравнивания.
Отображение виджета пустого списка
Посмотрите, как отобразить виджет пустого списка при отсутствии данных.
Показать/скрыть StaggeredView
Прокрутка к началу или концу
Инструкции по отображению/скрытию виджета находятся здесь.
Узнайте, как прокрутить страницу к началу или концу с помощью кнопки.