美文网首页
TabBar监听返回两次 2022-06-13 周一

TabBar监听返回两次 2022-06-13 周一

作者: 勇往直前888 | 来源:发表于2022-06-13 19:27 被阅读0次

需求简介

TabBar的切换,分为点击和手势两种方式。所以加一个监听方法进行数据的切换是很常见的。

问题

  • 手势切换的时候很正常;

  • 点击切换的时候,会发现一次点击会带来两次回调;

  • 假如在点击的时候再加一次onTap处理,就会出现调用3次后台接口,肯定有问题。

原因

这个已经有大神给出了答案,点击的时候,点击一次,动画一次,所以有2次。
真不知道这样做的意义是什么,除了徒增烦恼,有什么用?

解决

点击的一次和手势的一次,_tabController.indexIsChanging这个变量都是false,可以利用这一点进行过滤。

@override
void initState() {
 super.initState();
 _tabController = TabController(vsync: this, length: myTabs.length);
 _tabController.addListener(() {
   if (!_tabController.indexIsChanging) {
     //do your work
   }
 });
}

参考文章

Flutter TabController 多次调用,导致切换异常问题

相关文章

网友评论

      本文标题:TabBar监听返回两次 2022-06-13 周一

      本文链接:https://www.haomeiwen.com/subject/nxzomrtx.html