반응형
상태가 변화하는 화면이므로 StatefulWidget을 사용하여 코드를 작성해주어야한다.
아래는 하단의 FloatingActionButton을 클릭하면 글자 Hello가 World로 변경되는 예제이다.
import 'package:flutter/material.dart';
//앱 시작 부분
void main() {
runApp(const MyApp());
}
//시작 클래스. 머티리얼 디자인 앱 생성
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Flutter Demo',
theme: ThemeData(
primarySwatch: Colors.blue,
),
home: MyHomePage(),
);
}
}
class MyHomePage extends StatefulWidget{
@override
_MyHomePageState createState() => _MyHomePageState();
}
class _MyHomePageState extends State<MyHomePage>{
var _text = 'Hello';
@override
Widget build(BuildContext context){
return Scaffold(
appBar: AppBar(
title:Text('Hello World')
),
body: Text(
_text,
style: TextStyle(fontSize: 40),
),
floatingActionButton: FloatingActionButton(
onPressed: (){
setState(() {
_text = 'World';
});
},
child: Icon(Icons.touch_app),
),
);
}
}
[실행 결과]
하지만 코드를 이렇게 작성하면 처음 한 번만 텍스트가 변할 뿐 다시 다른 텍스트로 변경되지 않는다.
따라서 한 번 더 클릭하면 다시 글자가 변경 될 수 있도록 onpressed 부분의 코드를 변경해주었다.
[기존 코드]
floatingActionButton: FloatingActionButton(
onPressed: (){
setState(() {
_text = 'World';
});
},
child: Icon(Icons.touch_app),
)
[변경한 코드]
floatingActionButton: FloatingActionButton(
onPressed: (){
setState(() {
if(_text == 'Hello') _text = 'World';
else _text = 'Hello';
});
},
child: Icon(Icons.touch_app),
)
이렇게 하면 버튼을 클릭 할 때마다 글자가 변경된다.
반응형
'Mobile Develop > Flutter' 카테고리의 다른 글
[Flutter] MainAxis와 CrossAxis (0) | 2022.03.17 |
---|---|
[Flutter] Container, Column, Row 위젯 (0) | 2022.03.17 |
[Flutter] Hello World 정적 페이지 소스 (0) | 2022.03.16 |
[Dart] 주석과 문장 (0) | 2022.01.04 |
[Flutter] 온라인에서 Dart / Flutter 실행하기 (0) | 2022.01.04 |
댓글