公司最近在用flutter写项目的,自己在工作之余,也跟着新来的flutter同事学习fultter,发现一个问题,TabController的addListener方法点击的时候会走两次回调,但是左右滑动只会走一次回调,开始以为自己代码写错了,后来才发现原来是flutter故意这样设计的,特此记录一下.
界面布局如下图所示:
点击和滑动后的打印效果如下图:
最后看了代码知道,点击切换tab的时候执行了一个动画效果,滑动切换的时候是没有的,在这个过程中触发了一次Listener,所以触发了两次addListener方法,我们只需要addListener方法中加入一个判断_tabController.addListener(() {
if(_tabController.index ==_tabController.animation.value) {
// 在这里面处理逻辑,点击也只会走一次监听方法了
print('_tabControllerIndex' +_tabController.index.toString());}});
下面我们来看看代码和打印效果:
希望可以帮到跟我一样遇到同样问题的小伙伴!