반응형
Stack 위젯은 Flutter에서 여러 자식 위젯을 서로 겹쳐서 배치할 수 있도록 하는 레이아웃 위젯입니다. Stack 위젯은 Positioned 위젯과 함께 사용하여 자식 위젯의 위치를 지정할 수 있으며, 이를 통해 복잡한 레이아웃을 쉽게 구성할 수 있습니다.
주요 속성
• alignment: Stack 내에서 자식 위젯을 정렬하는 방법을 지정합니다. 기본값은 AlignmentDirectional.topStart입니다.
• fit: 자식 위젯이 Stack의 크기에 어떻게 맞춰질지 지정합니다. StackFit.loose(기본값), StackFit.expand, StackFit.passthrough 등이 있습니다.
• overflow: 자식 위젯이 Stack의 경계를 넘을 때 어떻게 처리할지 지정합니다. Overflow.clip(기본값), Overflow.visible 등이 있습니다.
주요 사용 사례
1. 단순 겹침
2. 정확한 위치 지정
body: Container(
child: Stack(
children: [
Container(
width: 150,
height: 200,
color: Colors.red,
),
Container(
width: 150,
height: 200,
margin: const EdgeInsets.only(top: 50, left: 50),
color: Colors.blue,
)
],
),
)
두번때 container 에 margin 을 위 50 좌 50 을 주는 코드입니다.
stack 을 활용한 도형 겹치기 실습입니다.
body: Container(
width: MediaQuery.of(context).size.width,
height: MediaQuery.of(context).size.height,
color: Colors.yellow,
child: Stack(
children: [
Container(
width: 150,
height: 200,
color: Colors.red,
),
Container(
width: 150,
height: 200,
margin: const EdgeInsets.only(top: 50, left: 50),
color: Colors.blue,
),
Container(
width: 150,
height: 200,
margin: const EdgeInsets.only(top: 100, left: 100),
color: Colors.green,
),
Container(
width: 150,
height: 200,
margin: const EdgeInsets.only(top: 150, left: 150),
color: Colors.orange,
),
],
),
)
positioned 위젯으로도 같은 내용을 표현 가능합니다.
Container(
width: 150,
height: 200,
color: Colors.red,
),
Container(
width: 150,
height: 200,
margin: const EdgeInsets.only(top: 50, left: 50),
color: Colors.blue,
),
Positioned(
left: 100,
top: 100,
// right: 10,
// bottom: 10,
child: Container(
width: 150,
height: 200,
color: Colors.green,
),
),
Container(
width: 150,
height: 200,
margin: const EdgeInsets.only(top: 150, left: 150),
color: Colors.orange,
),
• Stack 위젯 문서: https://api.flutter.dev/flutter/widgets/Stack-class.html
• Positioned 위젯 문서: https://api.flutter.dev/flutter/widgets/Positioned-class.html
반응형
'프론트엔드 > Flutter' 카테고리의 다른 글
flutter listview 만들기 및 component 화 하기, ListView builder (1) | 2024.07.16 |
---|---|
flutter button 클릭 및 gestureDetector 클릭 이벤트 (2) | 2024.07.16 |
flutter column row 테이블 구성 (0) | 2024.07.16 |
flutter 앱에서 자주 사용되는 주요 위젯 종류 모음 (0) | 2024.07.16 |
flutter 개발 시 유용한 코드 스니펫 (0) | 2024.07.15 |