首页 > 解决方案 > 如何在 Flutter 中初始化所有 TabBarView

问题描述

我有一个带有两个标签栏的页面,如下图:

在此处输入图像描述

这是一个过滤页面,当用户在输入文本中键入他想要查找的内容时,两个选项卡都会加载一个列表。

Tab 1 是 Store 过滤器,Tab 2 是 Product 过滤器,问题是Flutter 中的 Tab 仅在用户滚动到 Tab时才会启动initState() 。

在两者的initState()中,当用户键入新搜索时,我有一个正在监听的 observable。这是初始化状态:

  @override
  void initState() {
    super.initState();
    companyService = Provider.of<CompanyService>(context, listen: false);
    filterService = Provider.of<FilterService>(context, listen: false);
    companyService.loadFilter$.listen((value) {
      loadFilterListData(value);
      searchContent = value;
    });
    _scrollController.addListener(() {
      if (_scrollController.position.pixels ==
          _scrollController.position.maxScrollExtent) {
        if (resetData) {
          resetData = !resetData;
          loadMoreDataFilterList(searchContent);
        }
      }
    });
  }

我的 TabBarView 代码:

 Expanded(
        child: TabBarView(
          controller: _tabController,
          children: [
            Padding(
              padding: const EdgeInsets.only(
                  top: 15.0, left: 10.0, right: 10.0),
              child: CompanyFilteredList(),
            ),
            Padding(
              padding: const EdgeInsets.only(
                  top: 15.0, left: 10.0, right: 10.0),
              child: ProductFilterGrid(),
            ),
          ],
        ),
      ),

当用户进入此页面时,如何从两个 Tab 启动initState() ?不只是他所在的标签吗?

标签: flutter

解决方案


推荐阅读