반응형

들어가며

StatefulWidget이란?

  • 상태를 가지고 변경되면 화면을 다시 그리는 위젯을 말한다.
  • StatefulWidget은 상태를 갖는 State 클래스와 함께 사용한다.

예제

main.dart

import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatelessWidget {
  const MyApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      title: 'StatefulWidget Demo',
      home: MyPage(),
    );
  }
}

class MyPage extends StatefulWidget {
  const MyPage({super.key});

  @override
  State<MyPage> createState() => _MyPageState();
}

class _MyPageState extends State<MyPage> {
  int counter = 0;

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text('StatefulWidget Demo'),
      ),
      body: Center(
        child: Column(
          mainAxisSize: MainAxisSize.min,
          children: [
            Text('counter: $counter'),
            Row(
              mainAxisSize: MainAxisSize.min,
              children: [
                ElevatedButton(
                  onPressed: () {
                    setState(() {
                      counter++;
                    });
                  },
                  child: const Text('+'),
                ),
                ElevatedButton(
                  onPressed: () {
                    setState(() {
                      counter--;
                    });
                  },
                  child: const Text('-'),
                ),
              ],
            )
          ],
        ),
      ),
    );
  }
}

화면

반응형

'Development > Flutter' 카테고리의 다른 글

[Flutter] Http  (0) 2024.03.03
[Flutter] TextField  (0) 2024.02.23
[Flutter] LayoutBuilder  (0) 2024.02.23
[Flutter] Dialog  (0) 2024.02.21
[Flutter] Drawer  (0) 2024.02.21

+ Recent posts