Flutter使用SingleTickerProviderStateMixin报错解决
设置TabController
最近在学习开发Flutter应用项目,在创建tabbar和tabview后,进行网络请求后显示顶部tab标签,设置TabController,并使class类实现SingleTickerProviderStateMixin,代码如下
class _TravelPageState extends State<TravelPage> with SingleTickerProviderStateMixin{ TabController _tabController; TravelTabModel travelTabModel; List<TravelTab> tabs = []; @override void initState() { _tabController = TabController(length: 0, vsync: this); TravelTabDao.fetch().then((TravelTabModel model){ print(model); _tabController = TabController(length: model.tabs.length, vsync: this); setState(() { tabs = model.tabs; travelTabModel = model; }); }).catchError((e){ print(e); }); super.initState(); }
报错
运行代码后模拟器没有显示tab标签文字,且报如下错误
flutter: is a SingleTickerProviderStateMixin but multiple tickers were created.
A SingleTickerProviderStateMixin can only be used as a TickerProvider once.
If a State is used for multiple AnimationController objects, or if it is passed to other objects and those objects might use it more than one time in total, then instead of mixing in a SingleTickerProviderStateMixin, use a regular TickerProviderStateMixin.
分析解决
如上报错,原因是多个地方调用setState请求重绘,但是state使用的是SingleTickerProviderStateMixin ,将其改成TickerProviderStateMixin即可。
将上述代码进行修改如下:
class _TravelPageState extends State<TravelPage> with SingleTickerProviderStateMixin
修改为:
class _TravelPageState extends State<TravelPage> with TickerProviderStateMixin
修改完成后,重新运行项目即可。
以上就是Flutter使用SingleTickerProviderStateMixin报错解决的详细内容,更多关于Flutter SingleTickerProviderStateMixin的资料请关注脚本之家其它相关文章!
相关文章
创建Android库的方法及Android .aar文件用法小结
本文给大家介绍了创建Android库的方法及Android中 .aar文件生成方法与用法详解,涉及到创建库模块操作步骤及开发注意事项,需要的朋友参考下吧2017-12-12Android开发中实现IOS风格底部选择器(支持时间 日期 自定义)
这篇文章主要介绍了Android开发中实现IOS风格底部选择器(支持时间 日期 自定义)的相关资料,需要的朋友可以参考下2016-11-11Android编程自定义对话框(Dialog)位置及大小的方法
这篇文章主要介绍了Android编程自定义对话框(Dialog)位置及大小的方法,涉及Android对话框的定义、功能、属性及布局相关操作技巧,需要的朋友可以参考下2017-08-08Android 实现带角标的ImageView(微博,QQ消息提示)
下面小编就为大家分享一篇Android 实现带角标的ImageView(微博,QQ消息提示),具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧2018-01-01
最新评论