在下面的示例中,当我推送new MaterialPageRoute时,它是在与Flatter小部件树中的Home小部件相同的级别上创建的.我希望它是widget Home的子元素,所以Home将是child widget的父母.
以下是完整的代码:
import 'package:flutter/material.dart';
void main() {
runApp(MaterialApp(
home: Home(),
));
}
class Home extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: <Widget>[
Center(
child: Text("This is home"),
),
RaisedButton(
child: Text("Open child view"),
onPressed: () {
Navigator.of(context)
.push(MaterialPageRoute(builder: (context) => Child()));
},
)
],
),
);
}
}
class Child extends StatelessWidget {
@override
Widget build(BuildContext context) {
return Scaffold(
body: Container(
child: Text("Child view"),
));
}
}
下面是小部件树的样子
我希望实现这一点,因为我希望初始化ScopedModel in Home小部件,并使其在我创建的每个新的MaterialPageRoute中都可用.