[flutter] 플러터에서의 Stack 위젯과 다른 레이아웃 위젯의 중첩 사용 방법

플러터(Flutter)는 구글이 개발한 모바일 애플리케이션 개발 프레임워크로, 다양한 위젯을 활용해 사용자 인터페이스를 구성할 수 있습니다. 이 중에서 Stack 위젯은 다른 위젯들을 중첩하여 화면을 구성할 때 유용하게 사용됩니다.

Stack 위젯

Stack 위젯은 다른 위젯들을 겹쳐서 배치하는 컨테이너 위젯입니다. Stack 위젯은 자식 위젯들을 쌓아놓을 수 있으며, 자식 위젯들은 서로 겹쳐져 화면에 보여집니다. Stack 위젯을 사용하면 기본적으로 위젯의 크기만큼 자식 위젯들이 겹쳐지게 됩니다.

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

위의 예제에서는 Stack 위젯 내에 두 개의 Container 위젯이 중첩되어 있습니다. 첫 번째 Container는 (0, 0) 좌표에서 시작하여 빨간색으로, 두 번째 Container는 (50, 50) 좌표에서 시작하여 파란색으로 표시됩니다.

다른 레이아웃 위젯과 중첩 사용 방법

Stack 위젯은 다른 레이아웃 위젯들과 자유롭게 중첩하여 사용할 수 있습니다. 예를 들어, Container, Row, Column 등의 다른 레이아웃 위젯 안에 Stack 위젯을 위치시킬 수 있습니다.

Container(
  width: 200,
  height: 200,
  color: Colors.grey,
  child: Row(
    children: <Widget>[
      Expanded(
        child: Container(color: Colors.red),
      ),
      Stack(
        children: <Widget>[
          Container(width: 50, height: 50, color: Colors.blue),
          Container(width: 100, height: 100, color: Colors.green),
        ],
      ),
      Expanded(
        child: Container(color: Colors.yellow),
      ),
    ],
  ),
)

위의 예제에서는 Container 안에 Row 위젯이 위치하고 있습니다. Row 위젯 안에는 세 개의 Expanded 위젯이 있으며, 그 사이에 Stack 위젯이 중첩되어 있습니다. Stack 위젯 내에는 두 개의 Container가 겹쳐져서 화면에 보여집니다.

이처럼 Stack 위젯은 다른 레이아웃 위젯과 함께 사용하여 복잡한 UI를 구성할 때 유용하게 사용될 수 있습니다.

결론

플러터에서 Stack 위젯은 다른 위젯들을 중첩하여 UI를 구성하는 데에 유용한 도구입니다. Stack 위젯을 사용하면 다양한 위젯들을 겹쳐서 배치할 수 있으며, 다른 레이아웃 위젯과도 자유롭게 함께 사용할 수 있습니다. 플러터에서 UI 개발 시에는 Stack 위젯을 활용하여 필요한 UI 요소들을 자유롭게 배치해보세요.

더 자세한 내용은 Flutter 공식 문서를 참고하시기 바랍니다.