[flutter] 플러터에서의 Stack 위젯과 Row 또는 Column 위젯을 조합하는 방법

플러터(Flutter)는 Google에서 개발한 크로스 플랫폼 모바일 앱 개발 프레임워크로, 기존의 Android나 iOS 앱을 개발할 때 사용되는 Java나 Swift/Objective-C와는 달리 Dart라는 언어를 이용하여 앱을 개발합니다. 이번 포스트에서는 플러터에서의 Stack 위젯과 Row 또는 Column 위젯을 조합하는 방법에 대해 살펴보겠습니다.

Stack 위젯 소개

Stack 위젯은 플러터에서 UI 요소들을 겹쳐서 배치할 수 있도록 도와주는 위젯입니다. Stack 위젯은 자식 위젯들을 Z 축 방향으로 배치할 수 있으며, 각 자식 위젯의 위치를 지정할 수 있습니다. Stack에서는 자식 위젯들이 겹쳐진 순서대로 배치되며, 가장 위에 있는 위젯이 가장 앞에 표시됩니다. Stack은 다음과 같이 사용할 수 있습니다:

Stack(
  children: <Widget>[
    // 첫 번째 자식 위젯
    Positioned(
      top: 100,
      left: 50,
      child: Container(
        color: Colors.red,
        width: 100,
        height: 100,
      ),
    ),
    // 두 번째 자식 위젯
    Positioned(
      top: 150,
      left: 100,
      child: Container(
        color: Colors.blue,
        width: 100,
        height: 100,
      ),
    ),
  ],
)

위의 예제 코드에서는 Stack 위젯에 두 개의 Positioned 위젯이 자식으로 사용되었습니다. Positioned 위젯은 위치를 지정할 수 있는 위젯으로, top과 left 속성을 이용하여 자식 위젯의 위치를 조정할 수 있습니다.

Row 또는 Column과 Stack을 조합하기

Row와 Column은 플러터에서 가로 또는 세로로 여러 위젯들을 배치할 때 사용되는 위젯입니다. Stack과 Row 또는 Column을 조합하여 다층의 인터페이스를 구성할 수 있습니다. 다음은 Stack과 Row를 조합하여 UI를 구성하는 예제 코드입니다:

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

위의 코드에서는 Stack 안에 두 개의 Positioned 위젯이 사용되었는데, 하나는 상단 왼쪽에 노란색의 Container를 배치하고, 다른 하나는 Row를 배치했습니다. Row는 빨간색, 파란색, 초록색의 세 개의 Container를 가로로 배치합니다.

결론

플러터에서 Stack 위젯과 Row 또는 Column 위젯을 조합하여 다양한 인터페이스를 구성할 수 있습니다. Stack은 UI 요소들을 겹쳐서 배치할 수 있으며, Positioned 위젯을 사용하여 자식 위젯의 위치를 조정할 수 있습니다. Row와 Column은 가로 또는 세로로 여러 위젯들을 배치할 때 사용되며, Stack과 조합하여 다층의 인터페이스를 구성할 수 있습니다.

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