我有一个可在页面上切换小部件的应用程序。 (带有2个手势检测器的定制容器可在2个页面之间切换)
用于切换页面的无状态窗口小部件:(它返回所选窗口小部件)
class Layer2 extends StatelessWidget {
Layer2({this.pageName});
PageSelect pageName;
@override
Widget build(BuildContext context) {
if (pageName == PageSelect.Friends) {
return DiscoverFriends();
} else if (pageName == PageSelect.FriendRequests) {
return Requests();
} else {
return Text("");
}
}
}
然后,我使用这个稳定的小部件,在其中添加了“保持活动的客户端”。
class Requests extends StatefulWidget {
@override
_RequestsState createState() => _RequestsState();
}
class _RequestsState extends State<Requests>
with AutomaticKeepAliveClientMixin<Requests> {
@override
bool get wantKeepAlive => true;
等...
它可以工作,但是不能使2个小部件保持活动状态。 (当我切换时,init状态再次运行)
我在做什么错了?
谢谢!
答案 0 :(得分:0)
首先你应该了解 Flutter 的生命周期。如果你用 navigator 调用小部件,你会得到一个新的,所以如果你想调用相同的,我的意思是前一个,你应该使用“Navigator.pop”函数。