shrinkWrap: true
는 Flutter의 ListView
또는 다른 스크롤 가능한 위젯에서 사용할 수 있는 매우 유용한 속성입니다. 이 속성의 기본 설정값은 false
이며, 일반적으로 ListView
는 가능한 모든 공간을 차지하려고 합니다. 그러나 shrinkWrap
속성을 true
로 설정하면, ListView
는 자신이 포함하는 항목들의 총 크기에 딱 맞도록 크기가 조정됩니다.
shrinkWrap: true
사용 시의 효과:ListView
가 자신의 내용물 크기에 딱 맞춰서 크기가 조정되므로, 다른 위젯들이 더 많은 공간을 사용할 수 있게 됩니다.ListView
내의 항목 수가 변할 때 ListView
의 크기도 함께 변합니다. 이는 ListView
가 고정된 크기를 가지지 않고, 내용에 따라 유동적으로 크기가 조정된다는 의미입니다.ListView(
shrinkWrap: true,
children: <Widget>[
ListTile(title: Text('항목 1')),
ListTile(title: Text('항목 2')),
],
)
위 예제에서 ListView
는 두 개의 ListTile
위젯을 자식으로 가지고 있으며, shrinkWrap: true
로 설정되어 있습니다. 이 설정으로 인해 ListView
는 두 ListTile
의 높이를 합친 만큼의 크기만 차지하게 됩니다. 따라서, 만약 다른 위젯이 같은 열(column)이나 행(row) 내에 있으면, ListView
가 필요 이상으로 많은 공간을 차지하지 않게 됩니다.
shrinkWrap: true
는 ListView
가 초기 렌더링 시에 자식 위젯의 크기를 계산해야 하기 때문에, 많은 양의 데이터가 있을 때 성능 저하를 일으킬 수 있습니다. 따라서 내용물이 많은 경우는 주의해서 사용해야 합니다.shrinkWrap: true
는 ListView
의 크기를 내용에 따라 유동적으로 조절할 수 있게 해주는 강력한 속성입니다. 이를 통해 더 유연한 레이아웃을 설계할 수 있습니다.