Flutter: AnimationController vsync questo problema

0

Domanda

Sto cercando di implementare il codice da documentazione ufficiale esempio , ma non riesce:

...

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

Si dice che: The argument type '_MyHomePageState' can't be assigned to the parameter type 'TickerProvider'.

Così, VSCode in evidenza vsync: this param.

Ho l'ultima versione di 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

Perché si verifica questo errore e come risolvere questo problema senza il downgrade di versione dell'SDK?

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

Migliore risposta

2

In Flutter, un AnimationController ha bisogno di un TickerProvider.

Quando un AnimationController è stato creato da un Statesi deve avere la State di prorogare TickerProviderStateMixin o SingleTickerProviderStateMixin. Quest'ultimo è più ottimizzato per quando hai solo bisogno di utilizzare un unico titolo, che dovrebbe essere la maggior parte del caso.

Quindi, nel codice che hai postato, è necessario modificare:

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

2021-11-24 00:20:42

Grazie per la risposta, dovrei essere più attenti durante la lettura della documentazione, ma debug problema suggerendo che non è così evidente come si potrebbe essere. Anche molti argomenti per il downgrade SDK per risolvere questo problema sono confuso troppo.
mr.boris

In altre lingue

Questa pagina è in altre lingue

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