【问题标题】:Flutter keep client alive doesn't wrok颤振保持客户端存活不起作用
【发布时间】: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?

标签: flutter dart


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 2020-09-19
    • 2019-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-10-28
    • 2018-11-17
    • 2021-02-20
    • 2021-04-04
    相关资源
    最近更新 更多