본문 바로가기

Flutter/버그

[flutter] Renderbox was not laid out

1. 발생 원인

위젯의 존재 위치가 가용가능한 범위를 벗어나거나 하는 등의 오류로 인해, 위젯이 정상적으로 생성되지 않는 경우에 발생한다.

주로 Listview를 다루는 과정에서 발생하며, 그 외에도 Textfield를 다루거나 혹은 스크롤이 필요한 것을 다룰 때 자주 발견할 수 있다.

 

2. 해결법

Listview의 경우 아래의 코드를 추가한다.

scrollDirection: Axis.vertical,
shrinkWrap: true,

그 외의 위젯에서 발생한 경우, 해당 위젯을 Expanded()나 Flexible()로 감싸는 경우 해결된다.

위와 같은 방식이 의도한 바와 다를 경우, SizedBox나 Container로 감싸고 적당한 크기를 지정하면 오류가 해결된다.