Flutter: AnimationController vsync tento problém

0

Otázka

Ja som snaží implementovať kód z oficiálnych dokumentov príklad , ale to nedokáže:

...

class _MyHomePageState extends State<MyHomePage> {

  late AnimationController controller;

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

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

...

enter image description here

To hovorí, že: The argument type '_MyHomePageState' can't be assigned to the parameter type 'TickerProvider'.

Tak, VSCode zaujímavosti vsync: this param.

Mám najnovšiu verziu Flutter:

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

Prečo táto chyba sa vyskytuje, a ako to opraviť bez zníženia z SDK verziu?

dart flutter flutter-animation
2021-11-23 23:19:38
1

Najlepšiu odpoveď

2

V Flutter, je AnimationController potrebuje TickerProvider.

Keď AnimationController je vytvorený z State,, mali by ste mať State rozšíriť buď TickerProviderStateMixin alebo SingleTickerProviderStateMixin. Ten je viac optimalizovaná, keď stačí len používať jednu ticker, ktoré by mali byť najviac prípadu.

Takže v kód, ktorý je vyslaný, mali by ste zmeniť:

class _MyHomePageState extends State<MyHomePage>na class _MyHomePageState extends State<MyHomePage> with SingleTickerProviderStateMixin

2021-11-24 00:20:42

Ďakujem za odpoveď, ja by boli viac opatrní pri čítaní dokumentáciu, ale debug problém, čo naznačuje, nie je tak jasné, ako by to mohlo byť. Tiež veľa tém na zníženie verzie SDK ak chcete tento problém vyriešiť, sú mätúce príliš veľa.
mr.boris

V iných jazykoch

Táto stránka je v iných jazykoch

Русский
..................................................................................................................
Italiano
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................