블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형
MainAxisAlignment
속성을 이용하여 Column의 child 위젯을 정렬할 수 있다.
- 웹 개발을 해본 사람은 쉽게 이해할 수 있다.
기본 코드
import "package:flutter/material.dart";
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(title: "Column 위젯 정렬 예시", home: ColumnExample());
}
}
class ColumnExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Column(
children: [
Container(
width: 100,
height: 100,
color: Colors.red,
),
Container(
width: 100,
height: 100,
color: Colors.blue,
),
Container(
width: 100,
height: 100,
color: Colors.green,
)
],
),
),
);
}
}
상단에서부터 정렬
MainAxisAlignment.start
를 이용하여 상단부터 차곡차곡 쌓는다.
class ColumnExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Column(
mainAxisAlignment: MainAxisAlignment.start, // 상단에 맞춰 정렬
children: [
..중략..
],
),
),
);
}
}
가운데 정렬
MainAxisAlignment.center
를 이용하여 가운데로 정렬한다.
class ColumnExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Column(
mainAxisAlignment: MainAxisAlignment.center, // 가운데 정렬
children: [
..중략..
],
),
),
);
}
}
하단에서부터 정렬
MainAxisAlignment.end
를 이용하여 하단부터 차곡차곡 쌓는다.
class ColumnExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Column(
mainAxisAlignment: MainAxisAlignment.end, // 하단에 맞춰 정렬
children: [
..중략..
],
),
),
);
}
}
같은 간격만큼 공간을 두고 정렬
MainAxisAlignment.spaceAround
spaceAround는 각 위젯간에 여백이 생긴다. 그리고, 양끝에 여백이 생긴다.
class ColumnExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceAround, // 같은 간격을 두고 정렬
children: [
..중략..
],
),
),
);
}
}
MainAxisAlignment.spaceBetween
spaceAround와 비슷하지만, 양끝에 여백이 없이 정렬이 된다.
class ColumnExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Column(
mainAxisAlignment:
MainAxisAlignment.spaceBetween, // 같은 간격을 두고 정렬 (양끝 여백 없음)
children: [
...중략...
],
),
),
);
}
}
MainAxisAlignment.spaceEvenly
spaceAround와 똑같아 보이지만 미세하게 차이가 있다.
- spaceAround는 각 위젯의 간격의 절반만 앞뒤로 여백을 가진다.
- spaceEvenly는 각 위젯의 간격만큼 앞뒤로 여백을 가진다.
class ColumnExample extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: SafeArea(
child: Column(
mainAxisAlignment: MainAxisAlignment.spaceEvenly, // 같은 간격을 두고 정렬
children: [
...중략...
],
),
),
);
}
}
다른 글
2021/01/03 - [Flutter] - 플러터(flutter) - Column 가로 정렬 방법 (CrossAxisAlignment)
2021/01/02 - [Flutter] - 플러터(flutter) - 기본 레이아웃 (Column, Row, Container)
2021/01/02 - [Flutter] - 플러터(flutter) - Container와 SizedBox의 차이
반응형
'Mobile > Flutter' 카테고리의 다른 글
플러터(flutter) - Row 가로 정렬 방법 (MainAxisAlignment) (0) | 2021.01.03 |
---|---|
플러터(flutter) - Column 가로 정렬 방법 (CrossAxisAlignment) (0) | 2021.01.03 |
플러터(flutter) - Container와 SizedBox의 차이 (0) | 2021.01.02 |
플러터(flutter) - 기본 레이아웃 (Column, Row, Container) (0) | 2021.01.02 |
Flutter 설치 및 환경 구축 (MacOSX) (0) | 2020.12.23 |