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

2022-06-13  本文已影响0人  勇往直前888

需求简介

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

问题

原因

这个已经有大神给出了答案,点击的时候,点击一次,动画一次,所以有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 多次调用,导致切换异常问题

上一篇下一篇

猜你喜欢

热点阅读