[flutter] 플러터 Wrap의 다양한 적용 사례

플러터(Flutter)의 Wrap 위젯은 화면에 위젯을 래핑하여 자동으로 다음 줄로 넘어가거나, 오버플로우되는 경우 스크롤 기능을 제공합니다. 이 글에서는 Wrap 위젯의 다양한 적용 사례에 대해 알아보겠습니다.

1. Wrap의 기본 사용법

Wrap 위젯은 간단한 사용법으로도 다양한 레이아웃을 구성할 수 있습니다. 예를 들어, 다음과 같이 Wrap을 사용하여 다양한 크기의 컨테이너를 자동으로 배치할 수 있습니다.

Wrap(
  spacing: 8.0, // 위젯 사이의 간격 설정
  runSpacing: 12.0, // 줄 사이의 간격 설정
  children: <Widget>[
    Container(width: 100, height: 100, color: Colors.red),
    Container(width: 80, height: 80, color: Colors.blue),
    Container(width: 120, height: 120, color: Colors.green),
    Container(width: 150, height: 150, color: Colors.yellow),
    Container(width: 90, height: 90, color: Colors.orange),
  ],
),

위 코드에서 spacing은 위젯 사이의 간격을, runSpacing은 줄 사이의 간격을 설정합니다.

2. Wrap의 정렬 기능

Wrap 위젯은 컨테이너들을 자동으로 배치하는데, 이때 정렬 기능을 사용할 수도 있습니다. alignment 속성을 사용하여 Wrap의 정렬 방식을 조정할 수 있습니다. 예를 들어, 다음 코드는 컨테이너들을 왼쪽 정렬로 배치하는 예입니다.

Wrap(
  alignment: WrapAlignment.start, // 왼쪽 정렬
  children: <Widget>[
    Container(width: 100, height: 100, color: Colors.red),
    Container(width: 80, height: 80, color: Colors.blue),
    Container(width: 120, height: 120, color: Colors.green),
  ],
),

위 코드에서 WrapAlignment.start를 이용하여 왼쪽 정렬을 설정했습니다. 다른 정렬 옵션으로는 WrapAlignment.end, WrapAlignment.center, WrapAlignment.spaceBetween, WrapAlignment.spaceAround 등이 있습니다.

3. Wrap의 오버플로우 핸들링

Wrap 위젯은 화면에 모든 컨테이너를 완벽하게 배치하기 위해, 경우에 따라서는 오버플로우될 수 있습니다. Wrap의 오버플로우를 처리하기 위해 overflow 속성을 사용할 수 있습니다. 예를 들어, 다음 코드는 Wrap의 오버플로우를 스크롤 기능으로 처리하는 예입니다.

Wrap(
  spacing: 8.0,
  runSpacing: 12.0,
  children: <Widget>[
    Container(width: 100, height: 100, color: Colors.red),
    Container(width: 80, height: 80, color: Colors.blue),
    Container(width: 120, height: 120, color: Colors.green),
    Container(width: 150, height: 150, color: Colors.yellow),
    Container(width: 90, height: 90, color: Colors.orange),
  ],
  overflow: WrapOverflow.scroll, // 오버플로우 스크롤
),

위 코드에서 overflow 속성을 WrapOverflow.scroll로 설정하여 오버플로우시 스크롤 기능을 추가했습니다. 다른 옵션으로는 WrapOverflow.clip이 있으며, 이 경우 오버플로우된 부분이 잘려서 보여지게 됩니다.

이렇게 플러터의 Wrap 위젯은 다양한 기능을 사용하여 유연하고 다양한 레이아웃을 구성할 수 있는 편리한 위젯입니다. 많은 적용 사례를 고려하여 Wrap을 사용하여 UI를 개발해 보세요!

레퍼런스