[flutter] Row 위젯과 Expanded 위젯의 차이점

Flutter에서 UI를 구성하는데에는 다양한 위젯들이 존재합니다. 그 중에서도 Row 위젯과 Expanded 위젯은 주로 행렬 레이아웃을 구성할 때 사용됩니다. 이 두 위젯은 비슷한 역할을 하지만 몇 가지 중요한 차이점이 있습니다.

Row 위젯

Row 위젯은 자식 위젯을 가로로 나열하는데 사용됩니다. 자식 위젯은 기본적으로 가로 공간을 차지하며, 별도의 조작이 없을 경우 자신의 크기만큼만 차지하게 됩니다. 이는 자식 위젯들에 대한 가로 크기를 제한하지 않는다는 것을 의미합니다.

Row(
  children: [
    Text('Widget 1'),
    Text('Widget 2'),
    Text('Widget 3'),
  ],
)

위의 예제에서는 세 개의 Text 위젯이 가로로 나열됩니다. 그러나 Row 위젯은 자식 위젯들에게 가로 공간을 공평하게 분배하지는 않습니다. 따라서 기본적으로 자식 위젯들은 자신의 크기만큼만 차지하게 됩니다.

Expanded 위젯

Expanded 위젯은 자식 위젯에 대한 추가적인 유연성을 제공합니다. Expanded 위젯을 사용하면 자식 위젯을 확장하여 가로 공간을 공평하게 분배할 수 있습니다.

Row(
  children: [
    Expanded(child: Text('Widget 1')),
    Expanded(child: Text('Widget 2')),
    Expanded(child: Text('Widget 3')),
  ],
)

위의 예제에서는 Expanded 위젯을 사용하여 세 개의 Text 위젯을 가로로 나열했습니다. 각각의 Expanded 위젯은 동일한 가로 공간을 차지하게 됩니다. 이렇게 함으로써 자식 위젯들은 가로 공간을 공평하게 분배받을 수 있게 됩니다.

결론

Row 위젯과 Expanded 위젯은 비슷한 역할을 하지만, Expanded 위젯을 사용하면 자식 위젯들을 가로 공간을 공평하게 분배할 수 있습니다. 따라서 행렬 레이아웃을 구성할 때는 Expanded 위젯을 사용하는 것이 더욱 유연하고 효과적일 수 있습니다.


참고 자료: