【flutter 초보자】ListView나 GridView를 중첩하려면(Vertical viewport was given unbounded height 에러)
flutter의 리스트 뷰, 그리드 뷰를 사용해 레이아웃을 짜는 경우, 이것들을 중첩(중첩)하고 싶은 장면이 있습니다만, 간단하게 하면 아래와 같은 에러가 나옵니다.
The following assertion was thrown during performResize():
Vertical viewport was given unbounded height.
Viewports expand in the scrolling direction to fill their container. In this case, a vertical viewport was given an unlimited amount of vertical space in which to expand. This situation typically happens when a scrollable widget is nested inside another scroll.
If this widget is always nested in a scrollable widget there is no need to use a viewport because there will always be enough vertical space for the children. In this case, consider using a Column instead. Otherwise, consider using the "shrinkWrap"or a ShrinkWrappingViewport) to size the height of the viewport to the sum of the heights of its children.
요컨대 「높이가 무제한이 된다고」라고 분노됩니다. 이것에 대한 해결책.
해결 방법
아이의 ListView 위젯에, 이하를 설정한다.
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
「shrinkWrap: true 」만으로도 에러는 해소합니다만, 이것만으로는 아이의 리스트 뷰 영역에서 화면 전체의 스크롤이 효과가 없게 됩니다. 이것을 해소하려면 「physics: NeverScrollableScrollPhysics()」도 세트로 지정하는 것.
샘플 코드
class ListInList extends StatelessWidget {
@override
Widget build(BuildContext context) {
List<Widget> _listChild = new List();
for(int i=0; i<20; i++){
_listChild.add(Text('子${i}'));
}
return Scaffold(
appBar: AppBar(
title: Text('List in List'),
),
body: ListView(
children: <Widget>[
//親1
Column(
children: <Widget>[
ListTile(subtitle: Text('親1'),),
ListView(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
children: _listChild,
),
],
),
//親2
Column(
children: <Widget>[
ListTile(subtitle: Text('親2'),),
ListView(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
children: _listChild,
),
],
),
],
)
);
}
}
스크린샷
이상이 됩니다.
Reference
이 문제에 관하여(【flutter 초보자】ListView나 GridView를 중첩하려면(Vertical viewport was given unbounded height 에러)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/code-cutlass/items/3a8b759056db1e8f7639
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
class ListInList extends StatelessWidget {
@override
Widget build(BuildContext context) {
List<Widget> _listChild = new List();
for(int i=0; i<20; i++){
_listChild.add(Text('子${i}'));
}
return Scaffold(
appBar: AppBar(
title: Text('List in List'),
),
body: ListView(
children: <Widget>[
//親1
Column(
children: <Widget>[
ListTile(subtitle: Text('親1'),),
ListView(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
children: _listChild,
),
],
),
//親2
Column(
children: <Widget>[
ListTile(subtitle: Text('親2'),),
ListView(
shrinkWrap: true,
physics: NeverScrollableScrollPhysics(),
children: _listChild,
),
],
),
],
)
);
}
}
스크린샷
이상이 됩니다.
Reference
이 문제에 관하여(【flutter 초보자】ListView나 GridView를 중첩하려면(Vertical viewport was given unbounded height 에러)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/code-cutlass/items/3a8b759056db1e8f7639
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
Reference
이 문제에 관하여(【flutter 초보자】ListView나 GridView를 중첩하려면(Vertical viewport was given unbounded height 에러)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/code-cutlass/items/3a8b759056db1e8f7639텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)