shrinkWrap 사용 이유

ListView 위젯에서 shrinkWrap 사용하는 이유
김인범's avatar
Dec 29, 2024
shrinkWrap 사용 이유
notion image
Column 위젯 안에 ListView가 포함되어있습니다.
shrinkWrap을 통해 listview의 크기를 설정해주지 않으면 오류가 발생합니다.
Test 화면에서는 원인을 알 수 없지만
notion image
notion image
 
콘솔을 통해 높이에 대한 오류가 발생한 것을 알 수 있습니다.
 

오류 이유

Column자식 위젯들에게 제약없는 크기를 허용하지 않습니다.
(Column ⇒ 무한한 크기의 자식 위젯을 설정할 수 없음)
ListView위젯은 무한한 크기를 요구하는 위젯입니다.
 
Column 과 ListView 의 요구조건이 충돌하기 때문에 오류가 발생하고 있습니다.
 
이럴때는 ListView에 크기를 지정할 수 있도록 해야합니다. SizedBox로 감싸는 것이 아닌
ListView의 속성을 이용해서 크기를 제한하고 오류를 막을 수 있습니다.
 

shrinkWrap

이라는 속성을 사용하면 됩니다.
해당 속성은 listview 자신의 내용만큼만 높이를 계산하게 해줍니다.
ListView가 무한한 높이를 가지려 하지 않음, 자식 요소 높이에 따라 크기를 제한합니다.
⇒ 크기가 제한됨에 따라 Column의 조건에 충족하여 오류가 발생하지 않게 됩니다.
notion image
※ 오류가 사라지고 화면에 정상적으로 출력되는 모습
 
Share article

taker