Flutter를 연습해 보니 Container
위젯을 자주 사용하는 것 같다.
마치 HTML의 div
태그와 비슷한 용도인 것 같다.
그래서 이번에는 자주 사용되는 만큼 중요한 Container
위젯을 파헤쳐보자.
Container 위젯
이 위젯은 너비와 높이를 지정하고, 테두리, 그림자, 여백을 적용할 수 있는 박스이다.
너비와 높이는 부모 위젯이 있는지, 자식 위젯이 있는지에 따라 우선순위가 달라진다.
크기 결정 원리
부모, 자식 위젯이 없는 경우

- 부모, 자식 위젯이 없으면
Container
위젯의 크기는 0
자식 위젯만 있는 경우

- 자식 위젯이 있으면
Container
위젯의 크기는 자식의 크기를 가져온다.
부모 위젯만 있는 경우

- 부모 위젯이 있으면
Container
위젯의 크기는 부모의 크기를 가져온다.
부모, 자식 모두 있는 경우
본인 크기가 없는 경우

본인 크기가 있는 경우

Container
위젯의 크기는 무조건 부모의 크기를 우선적으로 가져온다.
심화

- 부모가
Expanded
위젯이면 조금 생각해봐야 한다. - 현재 상황은
Column
의 자식으로Expanded
를 사용했다. Expanded
는 메인 축 방향으로 꽉 채우고, 교차 축 방향은 크기가 0인 특징이 있다.- 그래서 세로 방향으로 꽉 채우므로
Container
에 크기가 지정되어 있어도, 자식이 있어도 높이는 부모의 크기를 가져오고 너비는Container
의 너비를 사용한다. - 만약 너비가 없다면 자식인
Text
위젯의 너비를 가져온다.
마무리(느낀 점)
Container
위젯의 크기 결정 원리가 조금 이상한 것 같다.
부모 위젯의 크기를 가져오는 것은 마땅하나 부모 크기 내에서 본인의 크기를 지정할 수 있도록 해야 하는 것이 아닐까?
내가 생각한 것을 Flutter를 개발한 개발자가 모를 리가 없는데 어떤 이유 때문에 이렇게 만든 것일까?
이 부분의 궁금증을 해결해 줄 수 있는 분을 만나 뵙고 싶다.
'TIL(Today I Learned)' 카테고리의 다른 글
[TIL-019] Flutter로 기차 좌석 예매 어플 만들기-1 (0) | 2025.04.01 |
---|---|
[TIL-018] Flutter의 AspectRatio위젯의 재발견 (0) | 2025.03.27 |
[TIL-016] Flutter App은 스크롤 생성이 자동이 아니다 (0) | 2025.03.27 |
[TIL-015] Mac OS 단축키 (0) | 2025.03.23 |
[TIL-014] Dart로 콘솔 텍스트 게임 만들기-2 (0) | 2025.03.21 |