Development/Flutter (Dart)
[Flutter3.61][Dart3.2] 튜토리얼 입문 프로젝트 Counter Button 개발 실습
Tradgineer
2023. 12. 19. 10:02
1. 단순 카운터 구현 예제 1
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatefulWidget {
const MyApp({super.key});
@override
State<MyApp> createState() => _AppStateState();
}
class _AppStateState extends State<MyApp> {
int counter = 0;
void onClicked() {
setState(() {
counter += 1;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
backgroundColor: Colors.black,
body: Column(
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: [
const Text(
"Count",
style: TextStyle(color: Colors.white),
),
Text(
"$counter",
style: const TextStyle(color: Colors.blue),
),
IconButton(
onPressed: onClicked,
icon: const Icon(Icons.add),
color: Colors.red,
)
],
),
),
);
}
}
- 단, setState() 안에 counter += 1 을 넣지않고, counter += 1 아래에 setState()를 두더라도 정상적으로 state 변경을 Flutter에서 인지 후 UI를 다시 그려준다.
// setState 안에 구현
// ...
class _AppStateState extends State<MyApp> {
int counter = 0;
void onClicked() {
setState(() {
counter += 1;
});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
// ...
// setState 에 구현
// ...
class _AppStateState extends State<MyApp> {
int counter = 0;
void onClicked() {
counter += 1;
setState((){});
}
@override
Widget build(BuildContext context) {
return MaterialApp(
// ...
2. 예제1 결과 예시 스샷