Перейти к основному содержимому

Генерация динамических дочерних элементов

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

Это особенно полезно, когда вы получаете данные из запроса API, запроса к Firebase или переменной состояния, которая содержит список элементов.

Некоторые из виджетов, способных обрабатывать множество дочерних элементов, включают Column, Row, Stack, ListView, GridView и PageView.

В следующем примере мы будем использовать AppState с именем categoryList, который содержит список категорий продуктов, и установим переменную на виджет ListView.

примечание

В демонстрационном приложении у нас заранее определены пользовательские Типы данных. Один из таких типов данных – "Category", который включает поля categoryImg и categoryName. В нашем состоянии приложения categoryList представляет собой List<Category>, которая содержит несколько объектов Category. Мы используем эту переменную списка в качестве источника значений для нашего виджета ListView.

Значение хранится в переменной (в данном примере – allCategoriesList) и может использоваться для заполнения любого прокручиваемого представления. В нашем примере мы заполняем виджет ListView, который создает несколько экземпляров, каждый из которых содержит Column с круглым Container и Text.

Что такое Экземпляры?

Узнайте о Экземплярах и сравните их с Классами в этом документе.

Для внесения изменений вам необходимо изменить только первого ребенка и установить переменные источника для дочерних виджетов. Эти изменения будут применены ко всем дочерним виджетам в ListView. Количество дочерних элементов будет соответствовать длине переменной списка, если вы не установили ограничение в Опции максимального количества элементов во вкладке Генерация динамических дочерних элементов.

Давайте посмотрим на быструю демонстрацию установки переменных источника первых дочерних виджетов: