본문 바로가기

Flutter

Flutter - Column,Row

화면을 구성할 때 맨 위에 scaffold라는 뼈대를 두고 body에 위젯을 넣어서 화면을 구성한다

주로 세로로 위젯을 배치할거면배치할 거면 Column을 가로로 배치할 거면 Row를 배치한다

class _MyHomePageState extends State<MyHomePage> {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Text('column1'),
          Text('column2'),
          Row(
            children: [
              Text('Row1'),
              Container(width: 100,height: 30,color: Colors.red,),
              Text('Row2'),
            ],
          ),
          Text('column3'),
        ],
      ),
    );
  }
}

 

 

위에서 보듯이 body가 column으로 배치되있어서 위젯들이 전체적으로 세로로 구성되어있다

중간에 row위젯으로 텍스트2개와 container가 구성되어있는데 row로 감싸서 가로로 구성되어있다

colum이나 row안에 위젯들을 넣을때는 children[]에 넣어준다 

여기서 중요한것은 mainAxisAlignment와 crossAxisAlignment이다

 

mainAxisAlignment

mainAxisAlignment는 그 위젯의 주요한 방향이라는 뜻이다

column은 세로로 위젯이 배치되므로 column의 main방향은 어딜까?

세로이다 

위 예시에는 center로 설정해서 세로로 가운데로 배치되어있다

예시)

start : 맨 위

mainAxisAlignment: MainAxisAlignment.start,

end : 맨 아래

mainAxisAlignment: MainAxisAlignment.end,

 

 

crossAxisAlignment

mainAxisAlignment와 반대의 개념으로 column의 main이 세로였으면 cross는 가로다

예시)

crossAxisAlignment: CrossAxisAlignment.center,

crossAxisAlignment: CrossAxisAlignment.start,

이런식으로 row도 마찬가지로 main은 가로고 cross는 세로이다

'Flutter' 카테고리의 다른 글

Flutter - Container안에 이미지 넣기  (0) 2022.01.02
Flutter - Container  (0) 2022.01.02
Flutter - fontFamily 적용  (0) 2022.01.02
Flutter-text위젯  (0) 2022.01.02
Flutter StatelessWidget , StatefulWidget  (0) 2021.12.29