상세 컨텐츠

본문 제목

Flutter 지원 클래스 / Stateless, Stateful Life Cycle

Flutter

by devTak 2024. 1. 16. 09:12

본문

반응형

Flutter 다양한 객체 및 옵션 설명

SafeArea : 화면 전체에 대한 기본 area를 지정할 수 있음

SafeArea(
        bottom: false,
        child: Container(

 

mainAxisAlignment - 주축정렬(전체를 잡아둔다)

  • start : 시작
  • end : 끝
  • center : 가운데
  • spaceBetween : 위젯과 위젯의 사이가 동일하게 배치
  • spaceEvenly : 위젯을 같은 간격으로 배치하지만 끝과 끝에도 빈간격으로 시작
  • spaceAround : 위젯을 같은 간격으로 배치하지만 끝과 끝의 간격은 반간격으로 시작

CrossAxisAlignment - 반대축 정렬(기본값은 center)

  • stretch : 최대한으로 늘린다.

MediaQuery.*of*(context) 는 클라이언트 정보를 가져오는 객체

 

MainAxisSize - 주축크기

  • max : 최대
  • min : 최소

Expanded / Flexible - Row 나 Column Children 위젯에서만 사용가능한 속성

Expended - 남아있는 공간을 전부 먹어버린다.

  • flex : 남아 있는 공간을 비율로 나눌 수 있다. - 기본값 1

Flexible - 남는 공간은 모두 버리고, 설정한 값으로만 세팅한다

 

StatefulWidget

  • 위젯 이론
    • 위젯은 모두 불변의 법칙을 갖고있다.
    • 하지만 위젯의 값을 변경해야할때가 있다.
    • 변경이 필요하면 기존 위젯을 삭제해버리고 완전 새로운 위젯으로 대체한다
  • StatelessWidget Life Cycle
    • Constructor로 생성이되고 생성이 되자마자 build 함수가 실행된다.
    • 이전 Container 예제와 마찬가지로 변경이 필요하면 새로운 위젯을 만들어버린다.
    • 하나의 StatelessWidget은 라이프 사이클동안 단 한번만 build 함수를 실행한다.
  • StatefulWidget Life Cycle
    • Constructor 가 불린다.
    • CreateState를 만듬 (최초 1회)
    • State.initStatus 를 부름 (1회)
    • State.dudChangeDependencies 를 부름
    • State.dirty → State.build → State.clean
      • 삭제 : deactivate → dispose
      • 생성 : setState
      • 수정 : didUpdateWidget
    • State 객체는 체이닝처럼 기존 State를 재활용한다.
    • StateWidget 자체는 무조건 삭제되고 새로 생성된다.
    • StateFulWidget 은 결국은 내부 프로퍼티 데이터들이 유지된다.
      • Why : 상태 프로퍼티를 관리하는 것은 State 객체 이므로 State 객체는 재활용됨에 따른 내부 상태 프로퍼티들을 유지할 수 있다.
  • 예제코드
import 'package:flutter/material.dart';

class HomeScreen extends StatefulWidget {
  const HomeScreen({required this.color, Key? key}) : super(key: key);

  final Color color;

  @override
  State<HomeScreen> createState() => _HomeScreenState();
}

class _HomeScreenState extends State<HomeScreen> {
  @override
  Widget build(BuildContext context) {
    return Container(
      width: 50.0,
      color: widget.color,
    );
  }
}

 

반응형

'Flutter' 카테고리의 다른 글

Flutter - 자주 사용하는 위젯 & 클래스  (0) 2024.01.18
Flutter Basic Widget Structure  (0) 2024.01.17

관련글 더보기