Ich möchte eine Funktion nach einer bestimmten Verzögerung ausführen, nachdem mein Widget erstellt wurde. Was ist die idiomatische Art, dies in Flutter zu tun?
Was ich erreichen möchte: Ich möchte mit einem Standard- FlutterLogo
Widget beginnen und dessen style
Eigenschaft nach einiger Zeit ändern .
Timer
?import 'dart:async'
timer = ...
deninitState
Override einzufügen. Auf diese Weise haben Sie Zugriff darauf,widget
was imState<>
Konstruktor festgelegt ist.Timer(Duration(seconds: 3), () { print("Yeah, this line is printed after 3 seconds"); });
Timer.periodic(Duration(seconds: 5), (timer) { print(DateTime.now()); });
Timer(Duration(seconds: 0), () { print("Yeah, this line is printed immediately"); });
quelle
Fügen Sie einfach mehr Beschreibung zu den obigen Antworten hinzu
Die Timer-Funktion funktioniert auch mit der folgenden Zeitdauer:
const Duration( {int days = 0, int hours = 0, int minutes = 0, int seconds = 0, int milliseconds = 0, int microseconds = 0})
Beispiel:
Timer(Duration(seconds: 3), () { print("print after every 3 seconds"); });
quelle
(Hinzufügen einer Antwort auf altes q, da dies das Top-Ergebnis bei Google ist)
Ich habe versucht, innerhalb eines Blocks einen neuen Status im Rückruf zu erhalten, aber es hat nicht funktioniert. Versucht mit Timer und Future.delayed.
Was jedoch funktionierte, war ...
await Future.delayed(const Duration(milliseconds: 500)); yield newState;
Warten auf eine leere Zukunft und anschließende Ausführung der Funktion.
quelle
Future.delayed(Duration(seconds: 3) , your_function)
quelle
import 'dart:async'; Timer timer; void autoPress(){ timer = new Timer(const Duration(seconds:2),(){ print("This line will print after two seconds"); }); } autoPress();
quelle
warte auf Future.delayed (Dauer (Millisekunden: 1000));
quelle
Sie können es auf zwei Arten tun: 1 ist
Future.delayed
und 2 istTimer
Timer verwenden
Timer
ist eine Klasse, die einen Countdown-Timer darstellt, der so konfiguriert ist, dass er nach Erreichen des Zeitendes eine Aktion auslöst und einmal oder wiederholt ausgelöst werden kann.Stellen Sie sicher, dass Sie das
dart:async
Paket importieren , um das zu verwendende Programm zu startenTimer
Timer(Duration(seconds: 5), () { print(" This line is execute after 5 seconds"); });
Verwenden von Future.delayed
Future.delayed
Dies schafft eine Zukunft, die ihre Berechnung nach einer Verzögerung ausführt.Stellen Sie sicher, dass Sie das
import "dart:async";
Paket zum Starten des zu verwendenden Programms verpackenFuture.delayed
Future.delayed(Duration(seconds: 5), () { print(" This line is execute after 5 seconds"); });
quelle
Lassen Sie hier einfach den Ausschnitt, nach dem jeder sucht:
Future.delayed(Duration(milliseconds: 100), () { // Do something });
quelle