flutter - 如何在 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() ?不只是他所在的标签吗?
解决方案
推荐阅读
- python - python selenium 在点不可点击
- json - 至少其中一个属性在 json 模式中应具有特定值
- c - Atmega328p 中的 SPI COMM
- ios - 如何将数据库放入iOS App的沙盒区域并访问路径?
- r - R:在字符串中显示匹配的特殊字符
- desire2learn - 学生科目和课程完成
- css - 为什么 Firefox 和 Chrome 在 flex 子项中呈现这个可滚动区域的方式不同,我如何让 Firefox 像 Chrome 一样工作?
- java - POST 请求不适用于 Python,但可以使用 Java
- angular - 从 asp.net 核心 web api 返回存储在数据库中的多个图像,以显示在轮播/滚动视图中
- asp.net-core - 为什么 EF Core 生成带有基于字符串的索引的 asp.net 标识表(在我将其更改为 int 之后)?