【发布时间】:2019-01-18 18:39:08
【问题描述】:
我有一个根类RootPage,它是一个始终可见的StatefulWidget。我想更改RootPage 中的body,它由来自不同类的RootPage's currentPage Widget 控制,例如我的FeedPage 类和我制作的任何其他类?
示例代码
import 'package:flutter/material.dart';
class RootPage extends StatefulWidget {
@override
_RootPageState createState() => new _RootPageState();
}
class _RootPageState extends State<RootPage> {
FeedPage feedPage;
Widget currentPage;
@override
void initState() {
super.initState();
feedPage = FeedPage();
currentPage = feedPage;
}
@override
Widget build(BuildContext context) {
return new Scaffold(
//Current page to be changed from other classes too?
body: currentPage
);
}
}
class FeedPage extends StatefulWidget {
@override
_feedPageState createState() => new _feedPageState();
}
class _feedPageState extends State<FeedPage> {
@override
Widget build(BuildContext context) {
return new FlatButton(
onPressed: () {
setState(() {
//change the currentPage in RootPage so it switches FeedPage away and gets a new class that I'll make
});
},
child: new Text('Go to a new page but keep root, just replace this feed part'),
);
}
}
我确信有一个明显的答案,但我似乎无法弄清楚如何有效地做到这一点,因此很容易集成未来的课程并让我的 Root 始终可见。
【问题讨论】: