Генерация динамических дочерних элементов
Виджеты, способные обрабатывать несколько дочерних виджетов, имеют дополнительную функциональность, называемую Генерация динамических дочерних элементов, которая помогает создавать несколько дочерних виджетов из переменной 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
. Количество дочерних элементов будет соответствовать длине переменной списка, если вы не установили ограничение в Опции максимального количества элементов во вкладке Генерация динамических дочерних элементов.
Давайте посмотрим на быструю демонстрацию установки переменных источника первых дочерних виджетов: