오류 메시지: Vertical viewport was given unbounded height.
원인: 이 오류는 스크롤 가능한 위젯이 다른 스크롤 가능한 위젯 내에 중첩되어 있을 때 발생합니다. 이 경우, 스크롤 가능한 위젯에 높이 제한이 없어서 자식 위젯이 무한정 확장되기 때문입니다.
해결: 이 문제를 해결하려면 스크롤 가능한 위젯의 높이를 제한해야 합니다. 다음과 같은 방법을 시도해 볼 수 있습니다:
- GridView.count 대신 ListView.builder를 사용하고, shrinkWrap 속성을 true로 설정합니다.
@override
Widget build(BuildContext context) {
return new Material(
color: Colors.deepPurpleAccent,
child: new ListView.builder(
shrinkWrap: true,
itemCount: _row * _column,
itemBuilder: (BuildContext context, int index) {
return new Center(
child: new CellWidget(),
);
},
),
);
}
- SingleChildScrollView 대신 Column을 사용하고, Expanded 위젯을 사용하여 자식 위젯의 높이를 제한합니다.
@override
Widget build(BuildContext context) {
return new Material(
color: Colors.deepPurpleAccent,
child: new Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Expanded(
child: new GridView.count(
crossAxisCount: _column,
children: new List.generate(_row * _column, (index) {
return new Center(
child: new CellWidget(),
);
}),
),
),
],
),
);
}
분석: 이 문제는 스크롤 가능한 위젯을 중첩할 때 발생하는 일반적인 문제입니다. 위의 두 가지 해결책 중 하나를 사용하여 높이를 제한하면 오류가 해결됩니다.
결론: 스크롤 가능한 위젯을 중첩할 때는 높이를 제한해야 합니다. 이를 위해 shrinkWrap 속성이나 Expanded 위젯을 사용할 수 있습니다.
'Flutter' 카테고리의 다른 글
Flutter 빌드 실패 Failed to build gradle [Flutter] Android (0) | 2023.11.01 |
---|---|
setState() called after dispose() [flutter] error (0) | 2023.10.31 |
Getting null in Facebook access token [Flutter] error (0) | 2023.10.30 |
No GoRouter found in context [flutter] error (0) | 2023.10.30 |
Firebase Firestore에서 'in' 연산자를 사용할 때 발생하는 오류 해결하기 (0) | 2023.10.17 |
Flutter Error: StreamProvider not updating when user signs out or signs in (0) | 2023.10.16 |
Firebase/Functions Dependency Issue with Flutter and CocoaPods (0) | 2023.10.16 |
Flutter Error: Failed assertion during Widget Lifecycle State Changes (0) | 2023.10.16 |