[flutter] 플러터에서의 Stack 위젯과 다른 레이아웃 위젯의 조합 예시

이번에는 Flutter에서 Stack 위젯을 이용하여 다른 레이아웃 위젯을 조합하는 예시에 대해 알아보도록 하겠습니다.

Stack 위젯

Stack 위젯은 다른 위젯들을 겹쳐서 표시할 수 있는 위젯입니다. Stack 위젯은 리스트 형태로 위젯을 받아들이고, 각 위젯의 위치를 지정하여 겹쳐지게 됩니다. 여러 개의 위젯이 겹쳐지는 경우, 가장 마지막으로 추가된 위젯이 가장 위에 표시됩니다.

Stack(
  children: <Widget>[
    // 위젯들을 추가
  ],
)

조합 예시

Stack과 Positioned 위젯 조합

Stack 위젯과 Positioned 위젯을 조합하여 각 위젯의 위치를 지정할 수 있습니다. Positioned 위젯은 Stack 위젯 내에서 사용되며, 각 위젯의 위치를 지정하는 매개변수를 사용하여 위젯의 위치를 지정할 수 있습니다.

Stack(
  children: <Widget>[
    Positioned(
      top: 10,  // 위쪽에서 10px 떨어진 위치
      left: 20,  // 왼쪽에서 20px 떨어진 위치
      child: Container(
        width: 100,
        height: 100,
        color: Colors.blue,
      ),
    ),
    Positioned(
      bottom: 10,  // 아래쪽에서 10px 떨어진 위치
      right: 20,  // 오른쪽에서 20px 떨어진 위치
      child: Container(
        width: 100,
        height: 100,
        color: Colors.red,
      ),
    ),
  ],
)

위의 예시 코드는 Stack 위젯 안에 두 개의 Positioned 위젯을 포함하고 있습니다. 첫 번째 Positioned 위젯은 왼쪽 위에서 10px, 20px 떨어진 위치에 파란색의 정사각형 컨테이너를 표시하며, 두 번째 Positioned 위젯은 오른쪽 아래에서 10px, 20px 떨어진 위치에 빨간색의 정사각형 컨테이너를 표시합니다.

Stack과 Expanded 위젯 조합

Stack 위젯과 Expanded 위젯을 조합하여 화면을 여러 영역으로 나눌 수 있습니다. Expanded 위젯은 Stack 위젯 내에서 사용되며, 특정 방향으로 화면을 확장하는 역할을 합니다.

Stack(
  children: <Widget>[
    Container(
      color: Colors.blue,
    ),
    Expanded(
      flex: 1,
      child: Container(
        color: Colors.red,
      ),
    ),
  ],
)

위의 예시 코드는 Stack 위젯 안에 두 개의 Container 위젯과 Expanded 위젯을 포함하고 있습니다. 첫 번째 Container 위젯은 전체 화면을 차지하며 파란색으로 채워지고, 두 번째 Expanded 위젯은 남은 공간을 모두 차지하며 빨간색으로 채워집니다.

마무리

플러터에서 Stack 위젯을 이용하여 다른 레이아웃 위젯을 조합하는 방법에 대해 알아보았습니다. Stack과 Positioned 위젯을 조합하면 위젯의 위치를 지정할 수 있고, Stack과 Expanded 위젯을 조합하면 화면을 여러 영역으로 분할할 수 있습니다. 다양한 조합을 통해 복잡한 UI를 구성할 수 있으며, 창의적인 디자인을 구현할 수 있습니다.

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