본문 바로가기
Flutter/Flutter FAQ

Flutter 확장 위젯은 Flex 위젯 내부에 배치되어야 합니다., Expanded widgets must be placed inside Flex widgets

by 베타코드 2023. 9. 7.
반응형

질문


플러터를 처음 사용해봐서 아래 코드에 무슨 문제가 있는지 알려주실 수 있는 분이 계신가요enter image description here

  class GamePage extends StatelessWidget {
  int _row;
  int _column;

  GamePage(this._row,this._column);

  @override
  Widget build(BuildContext context) {
    return new Material(
      color: Colors.deepPurpleAccent,
      child:new Expanded(
          child:new GridView.count(crossAxisCount: _column,children: new List.generate(_row*_column, (index) {
        return new Center(
            child: new CellWidget()
        );
      }),) )


    );
  }
}

에러 스크린샷 첨부.


답변


당신은 Flex 조상을 가지고 있지 않습니다.

Expanded 위젯은 Row, Column 또는 Flex의 자손이어야 하며, Expanded 위젯으로부터 해당 Row, Column 또는 Flex에 이르는 경로에는 Stateless 위젯 또는 Stateful 위젯만 포함되어야 합니다(다른 종류의 위젯인 RenderObjectWidgets와 같은 것은 포함되어서는 안 됩니다).

당신의 경우에 Expanded가 필요한지 확신하지 못합니다. 하지만 이를 제거하거나 Column으로 감싸면 문제가 해결될 것입니다.

반응형

댓글