TabController 回调两次处理

26 阅读1分钟

使用 TabController 的 addListener 方法监听,发现每次都会回调两次,对于同步操作还好处理,如果是异步操作就比较难处理了。

通过打印发现 两次的 index 是相同的,然后发现还有一个参数就是 indexIsChanging 结合打印发现 indexIsChangeing 两次 只有一次为false。

所以最终的使用方式为:

tabController.addListener(() {
  if(tabController.indexIsChanging) {
    /// TODO: do something 
  }
});