更深入的理解:即使我有不同的看法,有状态的窗口小部件也总是被重建?

时间:2019-02-18 12:59:33

标签: flutter future algolia statefulwidget statelesswidget

问题::GroupsOverview(使用Futurebuilder-代码很长,此处未显示)在点击应用中的其他视图(以及“子视图”)时似乎一直在重建太多的阿尔及利亚行动。我认为这是重建孔树的问题,但我对此一无所知。关于整合的思考范围模型。

我遇到了一个主要问题,就是我对Flutter入门者的整体理解才结束。我有一个“ GroupsOverview”类(每次重新加载),它基于我当前的位置以及来自Web服务(Algolia)的实时数据显示了分组。这是一个有状态的小部件,因为当前位置是通过initState加载的。该视图是选项卡视图中的一个选项卡,该视图又是有状态的。 Keepalive似乎不起作用。那么,当我查看有状态的窗口小部件GroupsOverview时(而不是在应用程序内的其他视图中单击时),该如何管理?

  @override
  Widget build(BuildContext context) {
    return WillPopScope(
      onWillPop: () => Future.value(false),
      child: new Scaffold(
          appBar: AppBar(
              leading: Container(),
              /*title: Text('Chat.Here', style: TextStyle(color: Colors.white),),
            leading: Container(),
            backgroundColor: Colors.orange[600],
            */

              flexibleSpace: SafeArea(
                  child: new TabBar(indicatorWeight: 4.0,indicatorColor: Colors.white, controller: controller, tabs: <Tab>[
                new Tab(
                  text: 'Gruppen',
                  icon: Icon(Icons.group),
                ),
                new Tab(
                  text: 'Chats',
                  icon: Icon(Icons.chat_bubble),
                ),
                new Tab(
                  text: 'Einstellungen',
                  icon: Icon(Icons.settings),
                )
              ]))),

          body: new TabBarView(controller: controller, children: <Widget>[
            new first.GroupsOverview(),
            new second.ChatsOverview(),
            new third.Settings()
          ])),
    );
  }

0 个答案:

没有答案