Sobes.tech
Junior — Middle

Ako spravovať animáciu pomocou AnimationController vo vašej aplikácii?

sobes.tech AI

Odpoveď od AI

V Flutteri sa na riadenie animácie používa trieda AnimationController. Umožňuje spúšťanie, zastavenie, opakovanie a kontrolu priebehu animácie.

Hlavné kroky:

  1. Vytvorte AnimationController v stave widgetu (zvyčajne v metóde initState), pričom určíte dĺžku trvania animácie a vsync (pre optimalizáciu zdrojov).
  2. Používajte metódy kontroléra: forward(), reverse(), repeat(), stop() na riadenie animácie.
  3. Prihláste sa na zmeny hodnoty animácie pomocou poslucháča (addListener) na aktualizáciu UI.
  4. Zabudnite na uvoľnenie zdrojov volaním dispose() v metóde dispose widgetu.

Príklad:

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(() {}); // aktualizuje UI pri zmene animácie
      });
    _controller.forward(); // spustí animáciu
  }

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

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