flutter_프로젝트/1_타이머_만들기

2. 타이머 만들기 - 시간 가게 하기

studyapps 2024. 7. 15. 23:33

flutter 에서 시간경과에 따른 무엇가를 하기 위해서는 dart:async 임포트가 필요하다

import 'dart:async';

 

1초 마다 시간을 가게 한다면 1초 마다 작동되는 Timer 를 만들어 주면 된다.

 

함수를 하나 만들어서 매 1초 간격으로 tick 을 (몇번 갔는지?) 출력하게 한다

  void start_btn() {
    Timer.periodic(const Duration(seconds: 1), (Timer t) {
      print(t.tick);
      // 1초 마다 타이머 t의 tick을 출력한다
    });
  }

 

함수 이름을 start_btn으로 만들고 이 함수를 버튼에 연결한다.

              ElevatedButton(
                onPressed: start_btn,
                child: const Text('Start'),
              )

 

이 상태에서 앱을 실행하면 "디버그 콘솔" 창에서 시간이 가는 것이 보인다. (tick이 출력된다)

 

바뀐 것은 없지만 함수를 어디 넣어야 하는지 헷갈리수 있음으로 (나만?) 함수까지 코드는 아래와 같다.

class _stopWatchState extends State<stopWatch> {
 
  void start_btn() {
    Timer.periodic(const Duration(seconds: 1), (Timer t) {
      print(t.tick);
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(