Sobes.tech
Junior — Middle

Cum gestionezi animația prin AnimationController în aplicația ta?

sobes.tech AI

Răspuns de la AI

În Flutter, clasa AnimationController este utilizată pentru a gestiona animația. Aceasta permite pornirea, oprirea, repetarea și controlul progresului animației.

Pașii principali:

  1. Creați un AnimationController în starea widget-ului (de obicei în metoda initState), specificând durata animației și vsync (pentru optimizarea resurselor).
  2. Utilizați metodele controlerului: forward(), reverse(), repeat(), stop() pentru a gestiona animația.
  3. Abonați-vă la modificările valorii animației printr-un listener (addListener) pentru a actualiza UI-ul.
  4. Nu uitați să eliberați resursele apelând dispose() în metoda dispose a widget-ului.

Exemplu:

class MyAnimatedWidgetState extends State<MyAnimatedWidget> with SingleTickerProviderStateMixin {
  late AnimationController _controller;

  @override
  void initState() {
    super.initState();
    _controller = AnimationController(
      duration: const Duration(seconds: 2),
      vsync: this,
    )..addListener(() {
        setState(() {}); // actualizează UI-ul la schimbarea animației
      });
    _controller.forward(); // pornește animația
  }

  @override
  void dispose() {
    _controller.dispose();
    super.dispose();
  }

  @override
  Widget build(BuildContext context) {
    return Opacity(
      opacity: _controller.value, // valoare de la 0.0 la 1.0
      child: YourWidget(),
    );
  }
}