배너 광고 하나를 Listview.builder widget 상단에 고정시키는 동시에 listview.builder 를 스크롤 할때 상단 배너 광고까지 스크롤 시키고 싶을 때가 있다.
이때 흔히 하는 실수가(내가 흔히 하는 실수) 하단과 같이 Column 위젯의 children에 상단 배너와 listview.builder 를 함께 쓰는 것이다.
Column(children[Image.asset('배너.jpg'),ListView(~)])
이때 ListView 의 높이가 정해져 있지 않기 때문에 [Vertical viewport was given unbounded height.] 에러가 난다.
ListView 위젯의 높이를 sizedBox 위젯으로 감싸더라도 상단의 배너 광고와 ListView 위젯 스크롤이 따로 노는 상황이 생기게 된다.
[해결]
ListView() 의 속성 중 children 속성이 있는데 여기에 배너광고 widget 과 ListView.builder 를 배치 시키면 된다.
샘플 코드
ListView(children:[Image.asset('배너광고.jpg'),ListView.builder(~)]
++ ListView.builder 의 shrinkwrap 속성을 true 로 줘야 viewpoint 에러가 안뜬다.