Stack 위젯 테스트 코드

2025. 1. 13. 17:52·Flutter/Dart 언어
728x90

Stack 위젯은 Flutter에서 여러 자식 위젯을 겹치게 배치할 수 있게 해주는 컨테이너 위젯입니다 Stack 내의 모든 자식은 오버레이 구조로 배열되어, 리스트의 앞쪽에 있는 위젯이 아래쪽에 위치하게 됩니다. Stack 위젯은 주로 위젯들 간의 위치를 상대적으로 정의할 때 사용됩니다.

 

Stack 위젯과 alignment 속성의 사용
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SafeArea(
        child: Scaffold(
          body: Stack(
            alignment: Alignment.bottomRight,
            children: [
              Container(
                width: 200,
                height: 200,
                color: Colors.red,
              ),
              Container(
                width: 100,
                height: 100,
                color: Colors.blue,
              ),
            ],
          ),
        ),
      ),
    );
  }
}

 

Stack 위젯과 Positioned 위젯의 사용
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SafeArea(
        child: Scaffold(
          body: Stack(
            // alignment: Alignment.bottomRight,
            // Stack 위젯안에 Positioned 위젯을 사용할 수 있다.
            children: [
              Positioned(
                top: 50,
                left: 50,
                child: Container(
                  width: 100,
                  height: 100,
                  color: Colors.red,
                ),
              ),
              Positioned(
                bottom: 50,
                right: 50,
                child: Container(
                  width: 50,
                  height: 50,
                  color: Colors.blue,
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}
출력 화면

 

Stack 위젯과 Positioned 위젯의 사용
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: SafeArea(
        child: Scaffold(
          body: Stack(
            // alignment: Alignment.bottomRight,
            // Stack 위젯안에 Positioned 위젯을 사용할 수 있다.
            children: [
              Positioned(
                top: 50,
                left: 50,
                child: Container(
                  width: 100,
                  height: 100,
                  color: Colors.red,
                ),
              ),
              Positioned(
                bottom: 50,
                right: 50,
                child: Container(
                  width: 50,
                  height: 50,
                  color: Colors.blue,
                ),
              ),
            ],
          ),
        ),
      ),
    );
  }
}

 

출력 화면

  • alignment: 전체 Stack 위젯의 자식 정렬을 간단히 조정.
  • Positioned: 세밀한 위치 조정이 필요할 때 활용.
  • 복잡한 UI: Stack 위젯은 카드, 배너, 오버레이와 같은 복잡한 UI 레이아웃에 유용.

lutter의 Stack 위젯은 겹치는 레이아웃을 만들고, alignment와 Positioned를 조합해 다양한 위치 설정을 제공합니다.
위 코드를 연습하며 레이아웃 구현 능력을 키워보세요!

 

💡 플러터의 다른 위젯들이 궁금하다면?

 

[Flutter] Flutter Scroll Wiget

ListView 사용법과 주요 property가장 일반적으로 사용되는 스크롤 위젯ListView는 주로 다음과 같은 방식으로 사용일반적인 ListView를 명시적으로 호출하고 children 전달하는 방법 (적은 데이터에 사용

seohong.tistory.com

 

 

'Flutter > Dart 언어' 카테고리의 다른 글

Dart 비동기 프로그래밍  (3) 2025.01.14
Dart 비동기 처리와 콜백 함수 활용  (0) 2025.01.14
[Dart] dart의 추상 클래스  (0) 2025.01.08
[Dart]OOP 연관관계와 Mixin  (0) 2025.01.08
[Dart] 상속과 super  (0) 2025.01.08
'Flutter/Dart 언어' 카테고리의 다른 글
  • Dart 비동기 프로그래밍
  • Dart 비동기 처리와 콜백 함수 활용
  • [Dart] dart의 추상 클래스
  • [Dart]OOP 연관관계와 Mixin
공돌이 출신 개발자
공돌이 출신 개발자
공돌이 출신 개발자입니다
  • 공돌이 출신 개발자
    공돌이 출신 개발자
    공돌이 출신 개발자
  • 전체
    오늘
    어제
    • 분류 전체보기 (124)
      • Database (0)
        • SQL (0)
        • 1일 1쿼리 (9)
      • Flutter (40)
        • Dart 언어 (18)
        • App (22)
      • Git (0)
      • Http 기초 지식 (14)
      • HTML5 & CSS3 (0)
      • Java (33)
      • JSP (0)
      • JavaScript (0)
      • Linux (0)
      • MSA (0)
      • Project (0)
      • React (0)
      • Spring (19)
      • 설치 메뉴얼 (1)
      • [Flutter] 프로젝트 (눈길) (8)
        • 작업일지 (8)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GitHub
  • 공지사항

  • 인기 글

  • 태그

    JAVA 기초
    android studio
    클래스
    SQL
    SQLD
    데이터
    안드로이드 앱 개발
    객체
    dart
    Android
    프로젝트
    블로그 만들기
    플러터
    HTTP
    안드로이드
    개발
    Java
    객체지향
    프로그래밍
    앱 개발
    코딩
    메서드
    jsp
    앱개발
    1일1쿼리
    로그인
    회원가입
    공부
    flutter
    spring boot
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.2
공돌이 출신 개발자
Stack 위젯 테스트 코드
상단으로

티스토리툴바