Как использовать itemCount в SliverGrid?
Скорее всего, я понял, что моя SliverGrid совершенно неверна,
Что я пытаюсь сделать, так это то, что я хочу, чтобы пользовательский интерфейс складывался с помощью SliverAppBar, который уже доступен во Flutter. Основным телом моего контента является набор изображений, поступающих из ответа API и уже проанализированных и загруженных в переменную List.
Теперь вот мой код:
body: CustomScrollView(
slivers: <Widget>[
SliverAppBar(expandedHeight: 150.0, backgroundColor: Colors.green),
SliverGrid(
gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
crossAxisCount: 3
),
delegate: SliverChildBuilderDelegate((BuildContext context, int index){
return Padding(
padding: EdgeInsets.symmetric(horizontal: 2.0, vertical: 2.0),
child: InkWell(
child: Card(
elevation: 8.0,
child: FadeInImage.memoryNetwork(fit: BoxFit.cover,image: myimagelist[index].thumbnail, placeholder:kTransparentImage,fadeInCurve: Curves.bounceIn,),
),
)
);
}),
),
],
),
Я думаю, что это, вероятно, потому что я не могу сказать виджету, как долго мои данные. Для GridView.builder itemCount
параметр есть, но у SliverGrid такой опции нет. Что здесь делать?
1 ответ
Виджет SliverGrid не имеет свойства с именем itemCount
, Однако, если вы прочитаете документы, вы увидите, что это свойство делегата, которое принимает SliverChildBuilderDelegate, имеет свойство с именем childCount
, Вы можете использовать это свойство, чтобы установить количество детей, которых вы хотите в своей сетке.
delegate: SliverChildBuilderDelegate((BuildContext context, int index){
return Padding(
padding: EdgeInsets.symmetric(horizontal: 2.0, vertical: 2.0),
child: InkWell(
child: Card(
elevation: 8.0,
child: FadeInImage.memoryNetwork(fit: BoxFit.cover,image: myimagelist[index].thumbnail, placeholder:kTransparentImage,fadeInCurve: Curves.bounceIn,),
),
)
);
},
childCount: 3, // Your desired amount of children here
),