首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >颤振: AnimationController vsync这个问题

颤振: AnimationController vsync这个问题
EN

Stack Overflow用户
提问于 2021-11-23 23:19:38
回答 1查看 782关注 0票数 1

我试图实现来自官方文档示例的代码,但是它失败了:

代码语言:javascript
复制
...

class _MyHomePageState extends State<MyHomePage> {

  late AnimationController controller;

  @override
  void initState() {
    super.initState();

    controller = AnimationController(duration: Duration(seconds: 3), vsync: this);
  }

...

上面写着:The argument type '_MyHomePageState' can't be assigned to the parameter type 'TickerProvider'.

因此,VSCode突出了vsync: this param。

我有最新版本的颤振:

代码语言:javascript
复制
Flutter 2.5.3 • channel stable • https://github.com/flutter/flutter.git
Framework • revision 18116933e7 (6 weeks ago) • 2021-10-15 10:46:35 -0700
Engine • revision d3ea636dc5
Tools • Dart 2.14.4

为什么会出现此错误,以及如何在不降级SDK版本的情况下修复此错误?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2021-11-24 00:20:42

在颤振中,AnimationController需要一个TickerProvider

当从一个AnimationController创建State时,您应该让State扩展TickerProviderStateMixinSingleTickerProviderStateMixin。后者更适合于当您只需要使用单个滴答器时,这应该是大多数情况下的优化。

解决方案:

变化

代码语言:javascript
复制
class _MyHomePageState extends State<MyHomePage>

转到

代码语言:javascript
复制
class _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin
票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/70089002

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档