반응형
재생 버튼을 누르면서 현재 시간이 줄어드는 기능을 추가해봤다
다음 시간에는 멈춤 기능을 만들어 본다.
import 'dart:async';
import 'package:flutter/material.dart';
class HomeScreen extends StatefulWidget {
const HomeScreen({super.key});
@override
State<HomeScreen> createState() => HomeScreenState();
}
class HomeScreenState extends State<HomeScreen> {
int totalSeconds = 1500;
late Timer timer;
void onTick(Timer timer) {
setState(() {
totalSeconds = totalSeconds - 1;
});
}
// good example for a variable modifier 'late'
void onStartPressed() {
timer = Timer.periodic(
const Duration(seconds: 1),
//1초마다 아래 함수가 실행된다.
onTick,
);
}
@override
Widget build(BuildContext context) {
return Scaffold(
backgroundColor: Theme.of(context).backgroundColor,
body: Column(
children: [
Flexible(
flex: 1,
child: Container(
alignment: Alignment.bottomCenter,
child: Text(
'$totalSeconds',
style: TextStyle(
color: Theme.of(context).cardColor,
fontSize: 89,
fontWeight: FontWeight.w600,
),
),
),
),
Flexible(
flex: 3,
child: Center(
child: IconButton(
color: Theme.of(context).cardColor,
iconSize: 120,
onPressed: onStartPressed,
icon: const Icon(Icons.play_circle_outline),
),
),
),
Flexible(
flex: 1,
child: Row(
children: [
Expanded(
child: Container(
decoration: BoxDecoration(
borderRadius: const BorderRadius.only(
topLeft: Radius.circular(50),
topRight: Radius.circular(50),
),
color: Theme.of(context).cardColor,
),
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text('pomodoro',
style: TextStyle(
fontSize: 20,
fontWeight: FontWeight.w600,
color:
Theme.of(context).textTheme.headline1!.color,
)),
Text('0',
style: TextStyle(
fontSize: 58,
fontWeight: FontWeight.w600,
color:
Theme.of(context).textTheme.headline1!.color,
)),
],
),
),
),
],
),
),
],
),
);
}
}
반응형
'Flutter > Flutter로 웹툰 앱 만들기' 카테고리의 다른 글
[노마드코더: Flutter 로 웹툰 앱 만들기] #5.3 Date Format (0) | 2022.12.02 |
---|---|
[노마드코더: Flutter 로 웹툰 앱 만들기] #5.2 Pause Play (0) | 2022.12.02 |
[노마드코더: Flutter 로 웹툰 앱 만들기] #5.0 User Interface (13:35) (0) | 2022.12.01 |
[노마드코더: Flutter 로 웹툰 앱 만들기] #4.4 Widget Lifecycle (1) | 2022.11.30 |
[노마드코더: Flutter 로 웹툰 앱 만들기] #4.3 BuildContext (0) | 2022.11.30 |