flutter TabController addListener走两次的问题

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

界面布局如下图所示:

简单的TabBar+TabBarView布局

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

TabController的addListener方法的打印,前两次是点击,后一次滑动

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

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

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

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

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

添加的判断和代码执行结果

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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容