[flutter] 플러터에서의 Stack 위젯과 Container 위젯의 차이점

플러터(Flutter)는 UI를 구성하는 위젯들을 조합하여 화면을 만들 수 있는 크로스 플랫폼 프레임워크입니다. 이 중에서도 Stack 위젯과 Container 위젯은 UI 레이아웃을 구성하는데 주로 사용되는 위젯입니다. 이번 포스팅에서는 이 두 위젯의 차이점에 대해 알아보겠습니다.

Stack 위젯

Stack은 위치와 크기를 지정하여 위젯들을 겹쳐서 배치하는데 사용됩니다. Stack 위젯은 자식(Child) 위젯들을 가장 위에 있는 위젯부터 아래에 있는 위젯으로 겹쳐서 배치합니다.

Stack(
  children: <Widget>[
    Positioned(
      left: 50.0,
      top: 50.0,
      child: Container(
        width: 100.0,
        height: 100.0,
        color: Colors.blue,
      ),
    ),
    Positioned(
      left: 100.0,
      top: 100.0,
      child: Container(
        width: 100.0,
        height: 100.0,
        color: Colors.red,
      ),
    ),
  ],
)

위의 예시에서는 두 개의 Container 위젯을 Stack 위젯으로 겹치게 배치하고 있습니다. Positioned 위젯을 사용하여 각각의 Container의 위치와 크기를 지정해주었습니다. 이렇게 하면 Stack 위젯 내부의 위젯들을 겹쳐서 배치할 수 있습니다.

Container 위젯

Container 위젯은 단일 위젯을 포함하고, 해당 위젯에 스타일이나 레이아웃 속성을 적용할 수 있는 위젯입니다. 주로 다른 위젯을 포함하는 역할로 사용됩니다.

Container(
  width: 200.0,
  height: 200.0,
  color: Colors.blue,
  child: Text(
    'Hello',
    style: TextStyle(
      color: Colors.white,
      fontSize: 20.0,
    ),
  ),
)

위의 예시에서는 Container 위젯 안에 Text 위젯을 포함하고 있습니다. Container 위젯은 너비(width), 높이(height), 색상(color) 등을 지정할 수 있으며, 해당 속성들은 자식 위젯에도 적용됩니다.

두 위젯의 차이점

이렇게 간단하게 플러터에서의 Stack 위젯과 Container 위젯의 차이점에 대해 알아보았습니다. 어떤 위젯을 사용해야 하는지는 구현하고자 하는 UI의 요구사항에 따라 다를 수 있으므로 적합한 위젯을 선택하여 사용하시면 됩니다.

참고 자료: