본문 바로가기
Mobile Develop/Flutter

[Flutter] 버튼 클릭 시 글자 변경되는 간단한 소스

by nyangzzi 2022. 3. 16.
반응형

 

상태가 변화하는 화면이므로 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),
)

 

 

이렇게 하면 버튼을 클릭 할 때마다 글자가 변경된다.

반응형

댓글