I am trying to run some method when user click back or I use Navigator.pop()
in second screen.
I have two screens.
After editing I pop user to first second. Now in first screen I use SharedPreference
. But I need to re run a method when user comes back to 1st screen. How can I do this?
In flutter we can make our own recurring method using Timer. periodic() method. The Timer. periodic() methods enable us to call a function or statement after a particular given time again and again.
The initState() is a method that is called when an object for your stateful widget is created and inserted inside the widget tree. It is basically the entry point for the Stateful Widgets.
pushNamed(context, '/page2'). then((_) { // This block runs when you have returned back to the 1st Page from 2nd. setState(() { // Call setState to refresh the page. }); }); (In your 2nd page): Use this code to return back to the 1st page.
While navigating to Edit
screen from Settings
screen, use this (inside your Settings
screen)
Navigator.pushNamed(context, "/editScreen").then((_) {
// you have come back to your Settings screen
yourSharedPreferenceCode();
});
If you only want to run this code on some event that happened on your Edit
screen, you can make use of pop
method inside Edit
screen like
Navigator.pop(context, true); // pass true value
And above code should be:
Navigator.pushNamed(context, "/editScreen").then((value) {
if (value) // if true and you have come back to your Settings screen
yourSharedPreferenceCode();
});
Edit:
async-await
would look something like:
bool value = await Navigator.pushNamed(context, "/editScreen");
if (value) // if true and you have come back to your Settings screen
yourSharedPreferenceCode();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With