我是 Flutter 的新手,并决定构建一个简单的计时器应用程序,该应用程序计算自启动以来经过的秒数,并最终显示错误的时间。计时器从 0 开始,然后递增到 1,从那时起,它似乎呈指数增长。
主要.dart
import 'package:flutter/material.dart';
import 'app.dart';
void main() => runApp(App());
应用程序.dart
import 'package:flutter/material.dart';
import 'package:async/async.dart';
import 'clock_widget.dart';
class App extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
title: "Timer",
home: Scaffold(
appBar: AppBar(
title: Text("Timer"),
centerTitle: true,
),
body: Row(
mainAxisSize: MainAxisSize.max,
crossAxisAlignment: CrossAxisAlignment.center,
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Column(
mainAxisSize: MainAxisSize.max,
mainAxisAlignment: MainAxisAlignment.center,
crossAxisAlignment: CrossAxisAlignment.center,
children: <Widget>[
ClockWidget(),
Text("seconds", style: TextStyle(fontWeight: FontWeight.bold, fontSize: 35),)
],
)
],
)
),
);
}
clock_widget.dart
import 'dart:async';
import 'package:flutter/material.dart';
class ClockWidget extends StatefulWidget {
@override
ClockWidgetState createState() => ClockWidgetState();
}
class ClockWidgetState extends State<ClockWidget> {
@override
int _secondCount = 0;
Widget build(BuildContext context) {
Timer.periodic(Duration(seconds: 1), (Timer t) => (setState(() {_secondCount+=1;})));
print("${_secondCount}");
return Text("${_secondCount}", style: TextStyle(fontSize: 75, color: Color.fromRGBO(30, 144, 255, 1)),);
}
}
我尝试了很多方法,但对我来说,这似乎是最简单的一种,从逻辑上讲它似乎是正确的。每隔一秒调用一次 setState 会增加 _secondsCount。