[flutter] Row 위젯에서의 확장성 고려하기

Flutter에서 Row 위젯은 수평 방향으로 자식 위젯을 정렬하는 데 사용됩니다. Row는 매우 유용한 위젯이지만, 확장성을 고려하지 않으면 UI 디자인에 문제가 발생할 수 있습니다. 이 블로그 포스트에서는 Row 위젯에서 확장성을 고려하는 몇 가지 팁을 알아보겠습니다.

1. Flexible과 Expanded 사용

Row 위젯 내에서 자식 위젯의 유연성을 제공하기 위해 Flexible과 Expanded 위젯을 사용하세요. 이들 위젯은 자식 위젯의 사이즈를 동적으로 조정하여 Row 내에서 공간을 공유합니다.

Row(
  children: [
    Expanded(
      child: Container(
        color: Colors.red,
        height: 100,
      ),
    ),
    Flexible(
      child: Container(
        color: Colors.blue,
        height: 100,
      ),
    ),
  ],
)

위의 예제에서는 첫 번째 자식 위젯에 Expanded를 사용하여 남아있는 공간을 모두 차지하도록 하였으며, 두 번째 자식 위젯에는 Flexible을 사용하여 유연한 사이즈 조정이 가능하도록 했습니다.

2. CrossAxisAlignment 사용

Row 위젯에서 자식 위젯을 수직으로 정렬하기 위해 CrossAxisAlignment를 사용하세요. CrossAxisAlignment는 자식 위젯들이 Row의 수직 공간에서 어떻게 정렬될지를 결정합니다.

Row(
  crossAxisAlignment: CrossAxisAlignment.center,
  children: [
    Container(
      color: Colors.red,
      height: 100,
    ),
    Container(
      color: Colors.blue,
      height: 200,
    ),
  ],
)

위의 예제에서는 자식 위젯들이 수직 방향으로 중앙에 정렬되도록 CrossAxisAlignment.center를 사용했습니다.

3. MainAxisAlignment 사용

Row 위젯에서 자식 위젯을 수평으로 정렬하기 위해 MainAxisAlignment를 사용하세요. MainAxisAlignment는 자식 위젯들이 Row의 수평 공간에서 어떻게 정렬될지를 결정합니다.

Row(
  mainAxisAlignment: MainAxisAlignment.spaceBetween,
  children: [
    Container(
      color: Colors.red,
      width: 100,
    ),
    Container(
      color: Colors.blue,
      width: 50,
    ),
    Container(
      color: Colors.green,
      width: 75,
    ),
  ],
)

위의 예제에서는 자식 위젯들이 수평 방향으로 동일한 간격을 유지하면서 정렬되도록 MainAxisAlignment.spaceBetween를 사용했습니다.

결론

Flutter의 Row 위젯은 유연하고 확장 가능한 UI 레이아웃을 구현하는 데 매우 유용합니다. 앞서 언급한 몇 가지 팁을 활용하여 Row 위젯을 사용할 때 확장성을 고려하고, 자식 위젯의 유연성과 정렬 방법을 적절히 조정하여 효과적인 UI를 구현할 수 있습니다.

참고 자료