Флаттер, как правильно структурировать структуру gridview? - PullRequest
0 голосов
/ 03 января 2019

Я внедряю отображение изображений с помощью GridView и изучаю шаблон BloC, но моя реализация продолжает выдавать ошибку о проблеме рендеринга.

Долгое время я пытался найти решение, но не смогпоймай это.Ниже приведен мой код и В чем проблема этой структуры кода?

@override
    Widget build(BuildContext context) {
      return StreamBuilder(
        stream: bloc.state,
        builder: (BuildContext context, AsyncSnapshot<WebtoonState> snapshot){
          final state = snapshot.data;
          return Scaffold(
            body: Column(
                children: <Widget>[
                  SizedBox(height: 40.0),
                  RaisedButton(
                    child: Text(
                      '웹툰!!',
                      style: TextStyle(
                        color: Colors.black
                      ),
                    ),
                    color: Colors.orange,
                    onPressed: () => bloc.onDayChanged.add('mon'),
                  ),
                  SizedBox(height: 40.0),
                  Stack(
                    children: <Widget>[
                      WebtoonLoadingWidget(visible: state is WebtoonLoading),
                      WebtoonResultWidget(
                        items: state is WebtoonDone ? state.result.items : [],
                      )
                    ],
                  )
                ],
              ),
          );
        },
      );
    }

WebtoonResultWidget

Widget build(BuildContext context) {
      return AnimatedOpacity(
        duration: Duration(milliseconds: 300),
        opacity: visible ? 1.0 : 0.0,
        child: GridView.count(
              shrinkWrap: true,
              crossAxisCount: 3,
              childAspectRatio: 0.6,
              children: List.generate(items.length, (index){
                return Column(
                  children: <Widget>[
                    Image.network(
                      items[index].imgUrl,
                      scale: 0.5
                    ),
                    Padding(
                      padding: const EdgeInsets.all(5.0),
                      child: Column(
                        children: <Widget>[
                          Align(
                            alignment: Alignment.centerLeft,
                            child: Text(
                              items[index].title,
                              style: TextStyle(fontWeight: FontWeight.bold),
                            ),
                          ),
                          Text(
                            "★ " + items[index].rate,
                            style: TextStyle(
                              color: Colors.red,
                              fontWeight: FontWeight.bold
                            ),
                          ),
                          Expanded(child: Container()),
                          Align(
                            alignment: Alignment.centerLeft,
                            child: Text(
                              items[index].artist,
                              style: TextStyle(fontWeight: FontWeight.bold),
                            ),
                          )
                        ],
                      ),
                    )
                  ],
                );
              }),
            ),
      );
    }

Мои журналы ошибок ...

I /трепетание (28386): ══╡ ИСКЛЮЧЕНИЕ ПРИОБРЕТЕНО БИБЛИОТЕКОЙ END════════════════════════════════════════════════════════ I / flutter (28386): во время executeLayout () было выдано следующее утверждение: I / flutter (28386): 'package: flutter /src / render / object.dart ': Неудачное утверждение: строка 1578 поз. 12: I / flutter (28386):'! _debugDoingThisLayout ': неверно.I / flutter (28386): I / flutter (28386): Либо утверждение указывает на ошибку в самой структуре, либо мы должны предоставить существенно I / flutter (28386): больше информации в этом сообщении об ошибке, чтобы помочь вам определить и исправитьосновной причиной.I / флаттер (28386): в любом случае сообщите об этом утверждении, отправив сообщение об ошибке на GitHub: I / флаттер (28386):
https://github.com/flutter/flutter/issues/new?template=BUG.md I / флаттер (28386): I / флаттер (28386): Когда генерировалось исключение, это был стек: I / flutter (28386): # 2 RenderObject.layout (package: flutter / src / render / object.dart: 1578: 12) I / flutter (28386):

3 RenderFlex.performLayout (пакет: flutter / src / render / flex.dart: 738: 15) I / flutter (28386): # 4

RenderObject.layout (пакет: flutter / src/rendering/object.dart:1634:7)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...