memostack
article thumbnail
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
반응형

MainAxisAlignment 속성을 이용하여 Column의 child 위젯을 정렬할 수 있다.

  • 웹 개발을 해본 사람은 쉽게 이해할 수 있다.

 

기본 코드

<java />
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, ) ], ), ), ); } }

 

1. 상단에서부터 정렬

MainAxisAlignment.start를 이용하여 상단부터 차곡차곡 쌓는다.

<java />
class ColumnExample extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( child: Column( mainAxisAlignment: MainAxisAlignment.start, // 상단에 맞춰 정렬 children: [ ..중략.. ], ), ), ); } }

start

 

2. 가운데 정렬

MainAxisAlignment.center를 이용하여 가운데로 정렬한다.

<java />
class ColumnExample extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( child: Column( mainAxisAlignment: MainAxisAlignment.center, // 가운데 정렬 children: [ ..중략.. ], ), ), ); } }

center

 

3. 하단에서부터 정렬

MainAxisAlignment.end를 이용하여 하단부터 차곡차곡 쌓는다.

<java />
class ColumnExample extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( child: Column( mainAxisAlignment: MainAxisAlignment.end, // 하단에 맞춰 정렬 children: [ ..중략.. ], ), ), ); } }

end

 

4. 같은 간격만큼 공간을 두고 정렬

4.1. MainAxisAlignment.spaceAround

spaceAround는 각 위젯간에 여백이 생긴다. 그리고, 양끝에 여백이 생긴다.

<java />
class ColumnExample extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( child: Column( mainAxisAlignment: MainAxisAlignment.spaceAround, // 같은 간격을 두고 정렬 children: [ ..중략.. ], ), ), ); } }

spaceAround

 

4.2. MainAxisAlignment.spaceBetween

spaceAround와 비슷하지만, 양끝에 여백이 없이 정렬이 된다.

<java />
class ColumnExample extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( child: Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, // 같은 간격을 두고 정렬 (양끝 여백 없음) children: [ ...중략... ], ), ), ); } }

spaceBetween

4.3. MainAxisAlignment.spaceEvenly

spaceAround와 똑같아 보이지만 미세하게 차이가 있다.

  • spaceAround는 각 위젯의 간격의 절반만 앞뒤로 여백을 가진다.
  • spaceEvenly는 각 위젯의 간격만큼 앞뒤로 여백을 가진다.
<java />
class ColumnExample extends StatelessWidget { @override Widget build(BuildContext context) { return Scaffold( body: SafeArea( child: Column( mainAxisAlignment: MainAxisAlignment.spaceEvenly, // 같은 간격을 두고 정렬 children: [ ...중략... ], ), ), ); } }

spaceEvenly

 

왼 - spaceEvenly / 우 - spaceAround

 

5. 다른 글

2021/01/03 - [Flutter] - 플러터(flutter) - Column 가로 정렬 방법 (CrossAxisAlignment)

 

플러터(flutter) - Column 가로 정렬 방법 (CrossAxisAlignment)

Column 위젯을 가로로 정렬할때는 crossAxisAlignment 속성을 이용한다. CrossAxisAlignment.start start 는 default 값으로 왼쪽에 붙게 한다. import "package:flutter/material.dart"; void main() => runApp(M..

memostack.tistory.com

2021/01/02 - [Flutter] - 플러터(flutter) - 기본 레이아웃 (Column, Row, Container)

 

플러터(flutter) - 기본 레이아웃 (Column, Row, Container)

Container 컨테이너는 width 와 height 속성이 있어서 크기를 조절할 수 있다. import "package:flutter/material.dart"; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widg..

memostack.tistory.com

2021/01/02 - [Flutter] - 플러터(flutter) - Container와 SizedBox의 차이

 

플러터(flutter) - Container와 SizedBox의 차이

Container와 SizedBox 위젯은 둘다 width와 height를 가진다. 그래서 너비와 높이를 설정 할 수 있다. 하지만 차이점이 존재한다. Container Container의 위젯은 width와 height를 넣지 않으면, 최대 크기로 확장..

memostack.tistory.com

 

반응형
블로그를 이전하였습니다. 2023년 11월부터 https://bluemiv.github.io/에서 블로그를 운영하려고 합니다. 앞으로 해당 블로그의 댓글은 읽지 못할 수 도 있으니 양해바랍니다.
profile

memostack

@bluemiv_mm

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!