shrinkWrap: true

샤워실의 바보·2024년 4월 12일
0
post-thumbnail

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: trueListView가 초기 렌더링 시에 자식 위젯의 크기를 계산해야 하기 때문에, 많은 양의 데이터가 있을 때 성능 저하를 일으킬 수 있습니다. 따라서 내용물이 많은 경우는 주의해서 사용해야 합니다.

shrinkWrap: trueListView의 크기를 내용에 따라 유동적으로 조절할 수 있게 해주는 강력한 속성입니다. 이를 통해 더 유연한 레이아웃을 설계할 수 있습니다.

profile
공부하는 개발자

0개의 댓글