๐Ÿ“šSTUDY/๐ŸŽซDart&Flutter

[flutter] StatelessWidget / StatefulWidget ์‹ค์Šต

ํ•ด๋Š”์„  2021. 2. 6. 19:24

StatelessWidget ์‹ค์Šต

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: Scaffold(
        appBar: AppBar(
          title:Text('Hello World'),
        ),
        body: Text(
          'Hello World',
          style: TextStyle(fontSize: 40),
        ),
      )
    );
  }
}

stless์˜ ๊ฒฝ์šฐ home์— ๋ฐ”๋กœ ์ž‘์„ฑ์ด ๊ฐ€๋Šฅํ•˜์ง€๋งŒ, ๋ณดํ†ต ๊ฐ€๋…์„ฑ์„ ์œ„ํ•ด ๋ณ„๋„์˜ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌํ•จ.

 

//๋ณ„๋„์˜ ํด๋ž˜์Šค๋กœ ๋ถ„๋ฆฌํ•œ ๊ฒฝ์šฐ. ์ž‘๋™์€ ์œ„์™€ ๋™์ผ

import 'package:flutter/material.dart';

//์•ฑ ์‹œ์ž‘ ๋ถ€๋ถ„
void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title:Text('Hello World'),
      ),
      body: Text(
        'Hello World',
        style: TextStyle(fontSize: 40),
      ),
    );
  }
}

 

 

 

StatefulWidget ์‹ค์Šต

๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋ฉด ๊ธ€์ž๊ฐ€ ๋ณ€๊ฒฝ๋˜๋Š” ์˜ˆ์ œ.

import 'package:flutter/material.dart';

//์•ฑ ์‹œ์ž‘ ๋ถ€๋ถ„
void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  // This widget is the root of your application.
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Flutter Demo',
      theme: ThemeData(
        primarySwatch: Colors.blue,
        visualDensity: VisualDensity.adaptivePlatformDensity,
      ),
      home: MyHomePage(),
    );
  }
}

class MyHomePage extends StatefulWidget {
  @override
  _MyHomePageState createState() => _MyHomePageState();
}

class _MyHomePageState extends State<MyHomePage> {
  var _text = "Wow";

  @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 = "hello!";
          });
        },
        child: Icon(Icons.wb_sunny),
      ),
    );
  }
}