flutter TabController addListener走两次的问题

公司最近在用flutter写项目的,自己在工作之余,也跟着新来的flutter同事学习fultter,发现一个问题,TabController的addListener方法点击的时候会走两次回调,但是左右滑动只会走一次回调,开始以为自己代码写错了,后来才发现原来是flutter的bug,特此记录一下.

界面布局如下图所示:

flutter TabController addListener走两次的问题_第1张图片
简单的TabBar+TabBarView布局

点击和滑动后的打印效果如下图:

flutter TabController addListener走两次的问题_第2张图片
TabController的addListener方法的打印,前两次是点击,后一次滑动

      最后看了代码知道,点击切换tab的时候执行了一个动画效果,滑动切换的时候是没有的,在这个过程中触发了一次Listener,所以触发了两次addListener方法,我们只需要addListener方法中加入一个判断_tabController.addListener(() {

if(_tabController.index ==_tabController.animation.value) {

// 在这里面处理逻辑,点击也只会走一次监听方法了 

print('_tabControllerIndex' +_tabController.index.toString());}});

下面我们来看看代码和打印效果:

flutter TabController addListener走两次的问题_第3张图片
添加的判断和代码执行结果

希望可以帮到跟我一样遇到同样问题的小伙伴!

你可能感兴趣的:(flutter TabController addListener走两次的问题)