플러터의 모든 것은, 그 앱 자체를 포함해서, 위젯이다.
이러한 모양의 위젯은,
이러한 트리로 구성된다.
Container의 하위로 위젯을 넣으려면 child이나 children에 넣어주면 된다.
이름에서 알수 있듯이, 하나만 넣으려면 child, 여러개면 children이다.
- A child property if they take a single child – for example, Center or Container
- A children property if they take a list of widgets – for example, Row, Column, ListView, or Stack.
(https://flutter.dev/docs/development/ui/layout 에서 발췌)
여기서 알 수 있듯이,
child를 속성으로 가지는 위젯은 Center나 Container 등의 하나의 위젯만 들어가는 위젯이고
children를 속성으로 가지는 위젯은 복수의 위젯을 가질 수 있는 Row, Column, ListView, Stack 등이 있다.
예를 들면,
Scaffold(
appBar: AppBar(
title: Text("TITLE"),
actions: <Widget>[
// Add 3 lines from here...
IconButton(icon: Icon(Icons.list), onPressed: _pushSaved),
],
),
body: Container(child:Column(children: <Widget>[SomeSimpleWidget()])),
);
여기의 body를 보면 알 수 있듯이, Container하나에 child로 Column하나가 들어가고, 그 Column의 children으로 위젯의 리스트가 들어간다.
개인적으로 차일드와 칠드런으로 구분한 이유는 아직 잘 모르겠다.
위젯 하나가 들어갈 곳에 프로그래머가 착각을 해서 칠드런으로 써서 위젯 여러개를 넣으면 컴파일러에서 오류를 미리 뱉어내라고 이런식으로 디자인 되어있을 수도 있겠다 싶다.
더 알게 되는 것이 있으면 또 글을 쓰겠다.
'코딩 > 플러터' 카테고리의 다른 글
Flutter - 현재 위젯 캡쳐(캡처) (1) | 2019.06.27 |
---|---|
플러터 - Status bar만 남기고 App bar는 지우기 (0) | 2019.06.25 |
간단한 플러터 앱 - 2초마다 한번씩 랜덤한 이름 만들기 (0) | 2019.06.21 |