Mobile Develop/Flutter
[Flutter] 버튼 클릭 시 글자 변경되는 간단한 소스
nyangzzi
2022. 3. 16. 17:38
반응형
상태가 변화하는 화면이므로 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),
)
이렇게 하면 버튼을 클릭 할 때마다 글자가 변경된다.
반응형