構築に渡された値を入れて、最初の10進数に丸め、RaisedButtonの子テキストに表示されるタイマーを作成するにはどうすればよいですか?私は試しましたが、運がありませんでした。単純なタイマーでコールバック関数を機能させることができますが、定期的ではなく、テキストのリアルタイムでの値の更新はありません...
import 'package:flutter/material.Dart';
import 'Dart:ui';
import 'Dart:async';
class TimerButton extends StatefulWidget {
final Duration timerTastoPremuto;
TimerButton(this.timerTastoPremuto);
@override
_TimerButtonState createState() => _TimerButtonState();
}
class _TimerButtonState extends State<TimerButton> {
@override
Widget build(BuildContext context) {
return Container(
margin: EdgeInsets.all(5.0),
height: 135.0,
width: 135.0,
child: new RaisedButton(
elevation: 100.0,
color: Colors.white.withOpacity(.8),
highlightElevation: 0.0,
onPressed: () {
int _start = widget.timerTastoPremuto.inMilliseconds;
const oneDecimal = const Duration(milliseconds: 100);
Timer _timer = new Timer.periodic(
oneDecimal,
(Timer timer) =>
setState(() {
if (_start < 100) {
_timer.cancel();
} else {
_start = _start - 100;
}
}));
},
splashColor: Colors.red,
highlightColor: Colors.red,
//shape: RoundedRectangleBorder e tutto il resto uguale
shape: BeveledRectangleBorder(
side: BorderSide(color: Colors.black, width: 2.5),
borderRadius: new BorderRadius.circular(15.0)),
child: new Text(
"$_start",
style: new TextStyle(fontFamily: "Minim", fontSize: 50.0),
),
),
);
}
}
あなたの質問に直接答えません。しかし、しばらくしてから何かを始めたい人には役立ちます。
Future.delayed(Duration(seconds: 1), () {
print('yo hey');
});