-
- 독립적으로 실행되는 작은 프로그램
- 주로 바탕화면 등에서 날씨나 뉴스, 생활저보 등을 보여줌.
- 그래픽이나 데이터 요소를 처리하는 함수를 갖고 있음.
-
-
앱의 UI를 만들고 구성하는 모든 기본 단위 요소
Ex) 이미지, 텍스트, 아이콘, 버튼...
-
플러터에서는 눈에 보이지 않는 요소들까지 전부 위젯이라고 말함.
- 정렬이나 레이아웃도 위젯으로 침.
- 그냥 다 위젯이라고 생각하면 편하다.
-
-
-
Stateless 위젯
- 이전 상호작용에 어떠한 값도 저장하지 않음(상태가 없는 정적인 위젯)
- 스크린상에 존재만 할 뿐 아무것도 하지 않음
- 어떠한 실시간 데이터도 저장하지 않음
- 어떤 변화(모양이나 상태)를 유발시키는 value값을 가지지 않음
-
Stateful 위젯
-
Value값을 지속적으로 추적하고 보존함(계속 움직이거나 변화가 있는 위젯)
-
사용자에 interaction(상호작용)에 따라 모양이 바뀜
-
데이터를 받게 되었을때 모양이 바뀜
Ex) 로그인, 리스트뷰, 텍스트필드...
-
-
-
- 플러터 내부 위젯들은 tree 구조로 정리될 수 있음
- 한 위젯 내에 얼마든지 다른 위젯들이 포함될 수 있음
- 위젯들은 부모 위젯과 자식 위젯으로 구성되어있음
- 부모 위젯을 위젯 컨테이너라고 부르기도 함
MyApp: MaterialApp이 빌드되는 최상위 위젯
MaterialApp: 전체 위젯을 감싸주는 위젯
MyHomePage: 기능과 디자인이 만들어지는 위젯
Scaffold: 디자인과 기능을 구현하기 위한 하얀 도화지 위젯
AppBar: 앱 상단 제목에 고정되어있는 바. 경우에 따라 제거할수 있음
Center: 구성 요소를 중앙에 배치시키기 위해 사용하는 위젯
Column: 구성 요소를 세로로 배치할때 사용하는 위젯
그 외에 Row, Container 등등 많은 위젯들이 들어갈 수 있다.