onResume() und onPause() für widgets auf Flattern
Jetzt ein widget hat nur initeState (), die wird ausgelöst, das erste mal ein widget erstellt, und dispose(), die wird ausgelöst, wenn das widget zerstört wird. Gibt es eine Methode, zu erkennen, Wann ein widget kommt zurück in den Vordergrund? und wenn ein widget zu gehen, um den hintergrund, weil ein anderes widget war gerade im Vordergrund?
Es ist das äquivalent von onResume und onPause ausgelöst wird, für Android und viewWillAppear und viewWillDisappear für ios
- Was ist dein Anwendungsfall? Zu wissen, was Sie zu tun versuchen, können uns dabei helfen, mehr info. Danke!
- Die Antwort ist genial! Aber das, was ich gesucht genau beantwortet wurde in stackoverflow.com/a/44417260/3217522
Du musst angemeldet sein, um einen Kommentar abzugeben.
Der häufigste Fall, wo würden Sie wollen, dies zu tun ist, wenn Sie eine animation ausgeführt wird und Sie nicht wollen, um die Ressourcen in den hintergrund. In diesem Fall sollten Sie erweitern Ihre
State
mitTickerProviderStateMixin
und verwenden Sie IhreState
alsvsync
argument für dieAnimationController
. Flattern wird sich darum kümmern nur den Aufruf der animation controller Hörer, wenn IhrState
sichtbar ist.Wenn Sie möchten, dass die
State
s, die Leben in IhrePageRoute
entsorgt werden, wenn diePageRoute
ist verdeckt durch andere Inhalte, die Sie übergeben können, einemaintainState
argumentfalse
zu IhremPageRoute
Konstruktor. Wenn Sie dies tun, IhreState
wird zurückgesetzt (und seine Kinder), wenn es verborgen ist und zu re-konstruieren, die sich ininitState
mit den übergebenen Eigenschaften als Konstruktor-Argumente zu seinerwidget
. Sie können ein Modell oder controller-Klasse, oderPageStorage
, halten Sie die Benutzer den Fortschritt Informationen, wenn Sie nicht möchten, dass ein kompletter reset.Hier ist eine Beispiel-app, veranschaulicht diese Konzepte.
Es ist eine abstrakte Klasse, Anrufer WidgetsBindingObserver
https://docs.flutter.io/flutter/widgets/WidgetsBindingObserver-class.html
in
es ist der "Staat", können Sie verwalten, wie