颤抖使客户活着不会动摇

时间:2019-11-13 20:11:12

标签: flutter dart

我有一个可在页面上切换小部件的应用程序。 (带有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状态再次运行)

我在做什么错了?

谢谢!

1 个答案:

答案 0 :(得分:0)

首先你应该了解 Flutter 的生命周期。如果你用 navigator 调用小部件,你会得到一个新的,所以如果你想调用相同的,我的意思是前一个,你应该使用“Navigator.pop”函数。