애플리케이션에서 유동적인 레이아웃을 구현하는 것은 사용자 인터페이스 설계에서 중요한 고려사항입니다. Wrap
위젯은 여러 위젯들이 가용 공간을 벗어날 때 다음 줄로 자동으로 넘어가도록 하여, 유연한 레이아웃을 제공합니다. 이는 특히 동적 콘텐츠가 많은 화면에서 유용합니다.
direction
: 위젯들이 배치될 방향을 결정합니다. 기본값은 Axis.horizontal
입니다.alignment
: 주축을 기준으로 위젯들을 어떻게 정렬할지 결정합니다. 기본값은 WrapAlignment.start
입니다.spacing
: 같은 줄에 있는 위젯들 사이의 간격을 지정합니다.runSpacing
: 다른 줄에 있는 위젯들 사이의 간격을 지정합니다.crossAxisAlignment
: 교차 축을 기준으로 위젯들을 어떻게 정렬할지 결정합니다.아래 예제는 Wrap
위젯을 사용하여 여러 개의 Chip
을 유동적으로 배치하는 방법을 보여줍니다.
Wrap(
spacing: 8.0, // 수평 간격
runSpacing: 4.0, // 수직 간격
children: <Widget>[
Chip(
label: Text('칩 #1'),
avatar: CircleAvatar(backgroundColor: Colors.blue, child: Text('1')),
),
Chip(
label: Text('칩 #2'),
avatar: CircleAvatar(backgroundColor: Colors.green, child: Text('2')),
),
Chip(
label: Text('칩 #3'),
avatar: CircleAvatar(backgroundColor: Colors.red, child: Text('3')),
),
// 여기에 더 많은 칩을 추가할 수 있습니다.
],
)
spacing
과 runSpacing
을 적절히 설정하여, 위젯들 사이의 공간을 조절하고 레이아웃의 가독성을 높입니다.direction
속성을 활용하여 위젯들이 수평 또는 수직으로 배치되도록 할 수 있습니다.Wrap
위젯과 함께 사용되어 동적인 요소 리스트를 효과적으로 표현할 수 있습니다.