Как использовать itemCount в SliverGrid? - PullRequest
0 голосов
/ 29 декабря 2018

Скорее всего, я понял, что моя 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 Ответ

0 голосов
/ 29 декабря 2018

Виджет 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 
),
...