【发布时间】:2019-11-13 20:11:12
【问题描述】:
我有一个可以在页面上切换小部件的应用。 (带有 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("");
}
}
}
然后我使用这个 stful 小部件,在其中添加了“保持活动客户端”。
class Requests extends StatefulWidget {
@override
_RequestsState createState() => _RequestsState();
}
class _RequestsState extends State<Requests>
with AutomaticKeepAliveClientMixin<Requests> {
@override
bool get wantKeepAlive => true;
等等……
它可以工作,但它不能让 2 个小部件保持活动状态。 (当我切换时,init状态再次运行)
我做错了什么?
提前致谢!
【问题讨论】:
-
你是怎么切换的?
-
我使用手势检测器“切换”,它执行“setState”并调整 PageSelect。是否有可能在切换页面时采用了错误的方法?有没有更好的方法来使用一种带有自定义布局的 TabBar?