Flutter使用SingleTickerProviderStateMixin報錯解決
設(shè)置TabController
最近在學習開發(fā)Flutter應(yīng)用項目,在創(chuàng)建tabbar和tabview后,進行網(wǎng)絡(luò)請求后顯示頂部tab標簽,設(shè)置TabController,并使class類實現(xiàn)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.
分析解決
如上報錯,原因是多個地方調(diào)用setState請求重繪,但是state使用的是SingleTickerProviderStateMixin ,將其改成TickerProviderStateMixin即可。
將上述代碼進行修改如下:
class _TravelPageState extends State<TravelPage> with SingleTickerProviderStateMixin
修改為:
class _TravelPageState extends State<TravelPage> with TickerProviderStateMixin
修改完成后,重新運行項目即可。
以上就是Flutter使用SingleTickerProviderStateMixin報錯解決的詳細內(nèi)容,更多關(guān)于Flutter SingleTickerProviderStateMixin的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
Android ScrollView顯示到底部或任意位置實現(xiàn)代碼
這篇文章主要介紹了 Android ScrollView顯示到底部或任意位置實現(xiàn)代碼的相關(guān)資料,需要的朋友可以參考下2017-02-02Android波紋擴散效果之仿支付寶咻一咻功能實現(xiàn)波紋擴散特效
這篇文章主要介紹了Android波紋擴散效果之仿支付寶咻一咻功能實現(xiàn)波紋擴散特效的相關(guān)資料,需要的朋友可以參考下2016-02-02詳解Android App卸載后跳轉(zhuǎn)到指定的反饋頁面的方法
這篇文章主要介紹了Android App卸載后跳轉(zhuǎn)到指定的反饋頁面的方法,關(guān)鍵點是相關(guān)線程要判斷在目錄被消除以前作出響應(yīng),需要的朋友可以參考下2016-04-04Android的Launcher啟動器中添加快捷方式及小部件實例
這篇文章主要介紹了在Android的Launcher啟動器中添加快捷方式及窗口小部件的方法,包括在自己的應(yīng)用程序中添加窗口小部件AppWidget的例子,需要的朋友可以參考下2016-02-02