如何保留动态的tabbarview状态?

时间:2019-04-02 08:15:55

标签: dart flutter

我有动态的tabbarview和基于后端的数据。每个tabbarview都有catalogId与项目列表一起显示。有时基于商家只有3或2个tabbarview。为了实现保留和持久性,我认为最简单的方法是将 mixin AutomaticKeepAliveClientMixin 结合使用。

这是我用于动态Tabbarview的代码:

Widget _showCatalogItem(CatalogsResponse catalog) {
    List<Widget> itemContainer = <Widget>[];

    for (var i = 1; i < catalog.data.length + 1; i++) {
      itemContainer.add(
        SingleChildScrollView(
          scrollDirection: Axis.vertical,
          child: Container(
            child: Column(
              children: <Widget>[
                MerchantListItems(
                    // showModal: _modalBottomSheet,
                    showModal: _showProductDetail,
                    catalogId: i,
                    merchant: widget.merchant),
              ],
            ),
          ),
        ),
      );
    }

    return TabBarView(
      children: itemContainer,
    );
  }

我在MerchantListItems上放置了 mixin

结果是当我滑动到当前的tabbarview时,ist确实保持生命。但另一个tabbarview始终与上次请求具有相同的数据,然后再加载。

所以如果我有4个选项卡视图A(数据:1),B(数据:2),C(数据:3),D(数据:4)。 第一次加载tabbarview是正常的,当加载tabbarview B时,结果为A(数据:2),B(数据:2),C(数据:3),D(数据:4)。滑动到Tabbarview C,结果为A(数据:3),B(数据:3),C(数据:3),D(数据:4),依此类推。如何正确保留动态Tabbarview?

0 个答案:

没有答案