(Flutter Codelabs) Layout 컨셉

  • Flutter는 UI가 XML 파일 등이 아닌 Code로 작성되므로 다른 프레임 워크와 다르다
  • widget은 Flutter UI의 기본 구성 블록

Row and Column classes

  • Row(행) Column(열)은 위젯 포함, 배치하는 클래스
  • Row, Column 내부 위젯 = Children, Row, Column = Parents
  • Row는 위젯을 가로로 배치하고 Column은 위젯을 세로로 배치

Axis size and alignment

mainAxisSize property

  • Row의 main axis는 horizontal(수평선), Column의 main axis는 vertical(수직선)
  • mainAxisSize property는 main axis에서 행과 열이 차지할 수있는 공간을 결정함 (2가지 값 가능)
    • MainAxisSize.max : default value, 행과 열이 main axis 모든 공간 차지, children(widgets) 합이 main axis보다 작아도 추가 공간 가짐
    • MainAxisSize.min : 행과 열은 main axis에서 children(widgets)를 위한 공간만 차지, chidren은 여분의 공간과 주축의 중앙에 배치

Flexible widget

  • 행과 열은 먼저 고정 된 크기의 위젯을 배치하며 이 후에 스스로 크기를 조정할 수 없기 때문에 inflexible로 간주
  • 플렉서블 위젯은 위젯을 래핑하므로 위젯의 크기를 조정할 수 있음
    • FlexFit.loose
    • FlexFit.tight

      Expanded widget

댓글남기기