플러터 프로젝트를 생성하면 나오는 기본 생성 코드에 버튼을 추가해보자.
return Scaffold(
appBar: AppBar(
// Here we take the value from the MyHomePage object that was created by
// the App.build method, and use it to set our appbar title.
title: Text(widget.title),
),
body: Center(
// Center is a layout widget. It takes a single child and positions it
// in the middle of the parent.
child: Column(
// Column is also a layout widget. It takes a list of children and
// arranges them vertically. By default, it sizes itself to fit its
// children horizontally, and tries to be as tall as its parent.
//
// Invoke "debug painting" (press "p" in the console, choose the
// "Toggle Debug Paint" action from the Flutter Inspector in Android
// Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
// to see the wireframe for each widget.
//
// Column has various properties to control how it sizes itself and
// how it positions its children. Here we use mainAxisAlignment to
// center the children vertically; the main axis here is the vertical
// axis because Columns are vertical (the cross axis would be
// horizontal).
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'You have pushed the button this many times:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headline4,
),
],
),
),
floatingActionButton: FloatingActionButton(
onPressed: _incrementCounter,
tooltip: 'Increment',
child: Icon(Icons.add),
),
);
난 처음엔 FloatingActionButton과 같이 Scaffold 바로 밑에 버튼을 작성해야 하는 줄 알았다. 하지만 FloatingActionButton은 Body Class 위에, 즉 Body Class에 속해있지 않지만 우리가 앞으로 생성할 위젯 같은 경우엔 Body Class에 속해 있기 때문에 Body Class 안에 있는 Column 밑에 작성해야 한다.
child: Column(
// Column is also a layout widget. It takes a list of children and
// arranges them vertically. By default, it sizes itself to fit its
// children horizontally, and tries to be as tall as its parent.
//
// Invoke "debug painting" (press "p" in the console, choose the
// "Toggle Debug Paint" action from the Flutter Inspector in Android
// Studio, or the "Toggle Debug Paint" command in Visual Studio Code)
// to see the wireframe for each widget.
//
// Column has various properties to control how it sizes itself and
// how it positions its children. Here we use mainAxisAlignment to
// center the children vertically; the main axis here is the vertical
// axis because Columns are vertical (the cross axis would be
// horizontal).
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Text(
'You have pushed the button this many times:',
),
Text(
'$_counter',
style: Theme.of(context).textTheme.headline4,
),
FlatButton(
onPressed: () {
/*...*/
},
child: Text(
"Flat Button",
),
),
],
),
요렇게 말이다. 앞으로 생성하게 될 거의 모든 위젯들은 Column 밑에 작성한다고 보면 된다.
'옛날 글들 > Flutter' 카테고리의 다른 글
[Flutter] M1 맥북에 플러터 개발환경 설정하기 (0) | 2022.02.23 |
---|---|
[Flutter] 플러터 기본생성 코드 리뷰 (0) | 2020.06.29 |
[Flutter] @override가 뭐야??? (0) | 2020.06.28 |
[Flutter] 안드로이드 스튜디오에서 Flutter 프로젝트 생성하기 (0) | 2020.06.24 |
[Flutter] Flutter doctor 명령어로 플랫폼 설치하기 (0) | 2020.06.24 |