Como definir o estado de outro widget?
Estou tentando alterar o estado de um widget diferente no Flutter. Por exemplo, no exemplo a seguir, defino o estado após alguns segundos.
Aqui está o código para isso:
class _MyAppState extends State<MyApp> {
int number = 1;
@override
void initState() {
super.initState();
new Future.delayed(new Duration(seconds: 5)).then((_) {
this.setState(() => number = 2);
print("Changed");
});
}
@override
Widget build(BuildContext context) {
return new Scaffold(
body: new Center(
child: new FlatButton(
color: Colors.blue,
child: new Text("Next Page"),
onPressed: () {
Navigator.of(context).push(new MaterialPageRoute(
builder: (BuildContext context) => new StatefulBuilder(builder: (BuildContext context, setState) =>new MySecondPage(number))
));
},
),
),
);
}
}
Eu tentei usar umInheritedWidget
, mas isso não funcionará, a menos que envolva meu widget de nível superior, o que não é viável para o que estou tentando fazer (o código acima é uma simplificação do que estou tentando alcançar).
Alguma idéia de qual é a melhor maneira de conseguir isso em Flutter?