일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- 직장인공부
- 자바
- 직정인자기계발
- fastcampus
- 코딩교육
- 코딩테스트
- 오공완
- 패스트캠퍼스후기
- 패캠
- 패캠챌린지
- 패캠강의후기
- 파이썬
- 패캠인강후기
- 코딩자격증
- 패스트캠퍼스
- 자바스크립트
- reactnative강의
- 수강료0원챌린지
- 환급챌린지
- 패캠reactnative
- 직장인인강
- 직장인자기계발
- 30개프로젝트로배우는iOS앱개발withSwift초격차패키지Online.
- Today
- Total
라티의 작은 일기장
패스트캠퍼스 환급챌린지 7일차 미션(2월 7일): 15개 프로젝트로 실무까지 끝내는 Dart & Flutter 앱 개발 강의 후기 본문
패스트캠퍼스 환급챌린지 7일차 미션(2월 7일): 15개 프로젝트로 실무까지 끝내는 Dart & Flutter 앱 개발 강의 후기
코드라티 2024. 2. 7. 23:49오늘은 Container, Center 위젯과 더불어 레이아웃의 기본 개념에 대해 알아보려한다.
일단 Container는 이름 그대로 어떤 위젯들을 내부에 포함시키기 위한 위젯이다. Child 위젯을 하나 가질 수 있고, width와 height, color 등 스타일과 관련된 속성도 지정할 수 있다. 아래는 너비와 높이가 100px이고 배경색이 지정된 채로 Text 위젯을 하나 child로 가진 Container 위젯을 만든 결과이다.
코드는 다음과 같다.
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
home: Scaffold(
appBar: AppBar(
title: Text('Practicing Container'),
),
body: CustomContainer(),
),
));
}
class CustomContainer extends StatelessWidget {
const CustomContainer({super.key});
@override
Widget build(BuildContext context) {
return Container(
width: 100,
height: 100,
color: Colors.blueAccent,
child: Text('Hello Container'),
);
}
}
너비나 높이를 디바이스의 너비만큼 주고 싶다면 숫자 대신 double.infinity를 할당해주면 되고, color를 특정 Hex값을 통해 지정하고 싶다면 Color(0x투명도헥스값)을 통해 할당해줄 수 있다. (ex: Color(0xFF85D07B))
컨테이너 내부 요소의 padding과 margin값도 지정해줄 수 있는데, Flutter에서는 다음과 같은 방법을 사용한다.
EdgeInsets.fromLTRB(double, double, double, double) -> 상하좌우별 간격 지정
EdgeInsets.symmetric(vertical: double, horizontal: double) -> 수직 / 수평 방향 간격 지정
그리고 decoration 속성을 통해 조금 더 세밀한 스타일 조정도 가능한데, color 속성과 중복해서 사용할 수 없으므로 둘 중 하나만 사용하자. 아래 사진은 Container를 중앙 정렬하고 테두리 스타일을 추가한 다음에 그림자 속성까지 추가해본 결과이다.
이런 위젯이 특정 영역에 여러개 존재하고, 그 영역에서 위젯을 특정 방향으로 정렬하면서 배치하고 싶을 때 사용할 수 있는 것이 Row와 Column 위젯이다. 오늘은 강의를 쭉 들으면서 두 위젯을 어떻게 사용하고 특징이 뭔지만 간단하게 알아봤는데, Row와 Column은 웹 FE 개발에서 Flex에 해당한다. 각각 수평과 수직 레이아웃을 구성하고 내부 위젯을 정렬하는 데 사용할 수 있고, Grid에 대응하는 위젯은 따로 없긴 한데 Flex를 여러 개 활용하면 2차원 레이아웃도 구성할 수는 있으므로 Flutter에서도 이런 방식을 택하면 될 것 같다.
실습에 관한 내용은 내일 조금 더 자세히 다뤄보도록 하겠다.
본 포스팅은 패스트캠퍼스 환급 챌린지 참여를 위해 작성하였습니다.