[flutter] 플러터에서의 Stack 위젯과 GridView 위젯의 조합 예시

서론

플러터(Flutter)는 크로스 플랫폼 앱 개발 프레임워크로, 다양한 위젯들을 조합해 다양한 레이아웃을 구성할 수 있습니다. 이번 포스트에서는 Stack 위젯과 GridView 위젯을 조합한 예시를 다루어보겠습니다.

Stack 위젯

먼저, Stack 위젯은 위젯을 중첩하여 쌓을 수 있는 위젯입니다. Stack 위젯 안에 들어있는 위젯들을 겹쳐서 화면에 표시하고, 각 위젯의 위치와 크기를 조정할 수 있습니다.

Stack(
  children: [
    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 위젯을 중첩하여 화면에 표시했습니다. Positioned 위젯을 사용하여 각 Container 위젯의 위치를 지정하고, width와 height를 설정하여 크기를 조정했습니다.

GridView 위젯

그 다음은 GridView 위젯입니다. GridView 위젯은 그리드 형태로 위젯들을 나열할 수 있게 해주는 위젯입니다. 주로 리스트 형태로 데이터를 표시할 때 사용됩니다.

GridView.builder(
  gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
    crossAxisCount: 3,
  ),
  itemBuilder: (BuildContext context, int index) {
    return Container(
      color: Colors.green,
    );
  },
)

위의 예시에서는 GridView.builder를 사용하여 그리드 형태로 위젯들을 나열했습니다. gridDelegate 속성을 사용하여 그리드의 열 갯수를 설정하고, itemBuilder를 통해 각각의 위젯을 구성했습니다.

Stack 위젯과 GridView 위젯의 조합

이제 Stack 위젯과 GridView 위젯을 조합해보겠습니다. Stack 위젯 안에 GridView 위젯을 배치하여 겹친 형태의 그리드를 만들 수 있습니다.

Stack(
  children: [
    GridView.builder(
      gridDelegate: SliverGridDelegateWithFixedCrossAxisCount(
        crossAxisCount: 3,
      ),
      itemBuilder: (BuildContext context, int index) {
        return Container(
          color: Colors.green,
        );
      },
    ),
    Positioned(
      top: 10,
      left: 10,
      child: Container(
        width: 50,
        height: 50,
        color: Colors.red,
      ),
    ),
  ],
)

위의 예시에서는 Stack 위젯 안에 GridView.builder 위젯과 Positioned 위젯을 배치하여 그리드 위에 빨간색 작은 사각형을 겹쳐 표시했습니다. Stack 위젯을 통해 위젯들을 쌓을 수 있고, Positioned 위젯을 사용하여 위치를 조정할 수 있습니다.

결론

이번 포스트에서는 플러터에서 Stack 위젯과 GridView 위젯을 조합한 예시를 다뤘습니다. Stack 위젯을 사용하여 위젯들을 중첩하고 겹칠 수 있으며, GridView 위젯을 사용하여 그리드 형태로 위젯들을 나열할 수 있습니다. 이러한 위젯들을 조합하면 다양한 레이아웃을 구성할 수 있습니다.

더 많은 위젯에 대한 정보는 플러터 공식 문서를 참고하세요.