Flutter 기본 위젯

Hyunsoo Jung·2024년 11월 3일
0

Flutter

목록 보기
5/15

MaterialApp

  • Root Widget
    • home: main view
      • routes, initialRoutes, onGenerateRoutes, ... : navigation, routes
      • theme: project theme
      • 전체적인 흐름을 다루는 아주 기본적인 위젯

Scaffold

  • 유사 ViewController
    • AppBar, Body, Navigation, Action...
    • 하나의 화면을 구성하기 위한 큰 단위의 위젯








Row, Column

  • 가장 기본적인 수직, 수평 레이아웃

Row, Column: Expanded, Flexible

  • 부모 위젯의 공간을 활용할 방법들

Container: constraints

  • BoxConstraints: 제약조건 설정
    • minWidth(Height): 위젯의 최소 너비(높이) 지정
    • maxWidth(Height): 위젯의 최대 너비(높이) 지정
    • minWidth(Height) == maxWidth(Height): 팽팽한 제약
    • minWidth(Height) == 0, maxWidth(Height)>1: 느슨한 제약

Center

  • 중앙으로 정렬

Align

  • 원하는 위치로 정렬
    • enum Alignment
    • 9개의 방향 설정 가능
    • Align(alignment: Alignment.center) == Center()

Stack

• z축의 index를 통해 쌓는 순서를 결정
• alignment: 정렬 방식 결정
• clipBehavior: 경계 밖으로 나갈 때 처리 방식 결정
• fit: 자식의 크기 결정


Stack: Positioned

• Stack의 자식들만 사용할 수 있는 위젯
• top, bottom 조합 또는 left, right 조합은 알고 쓸 것 !
• AutoLayout과 유사. width 또는 height에서 충돌 발생 가능


SizedBox

  • 간단한 크기 제어, 공백, 간격
    • 자식을 추가하여, 자식의 프레임을 잡는 경우
    • 단순히 공백을 넣는 경우
    • 위젯 간 간격을 확보하는 경우
  • Container는 자식이 없으면 frame이 hidden
  • SizedBox는 색상, 테두리, margin, padding 등 설정 불가능

AxisAlignment

  • mainAxisAlignment, crossAxisAlignment
    • main은 축의 주 방향, cross는 축의 반대 방향
    (수직 -> 수평, 수평 -> 수직)
  • 주의할 부분
    • spaceBetween: 벽에 붙어서 같은 간격
    • spaceAround: 벽에서는 반 간격, 위젯 간에는 정 간격
    • spaceEvenly: 벽에서부터 같은 간격

생명주기






그외



출처: 큰돌쌤 플러터 스터디

profile
안드로이드 네이티브 Kotlin과 크로스 플랫폼 Flutter를 잘 활용하면서 공익적 가치를 실현하는 앱 개발자

0개의 댓글