Sobes.tech
Junior — Middle

Jak zarządzać animacją za pomocą AnimationController w Twojej aplikacji?

sobes.tech AI

Odpowiedź od AI

W Flutterze do zarządzania animacją używa się klasy AnimationController. Pozwala ona na uruchamianie, zatrzymywanie, powtarzanie i kontrolowanie postępu animacji.

Główne kroki:

  1. Utwórz AnimationController w stanie widżetu (zazwyczaj w metodzie initState), określając czas trwania animacji i vsync (w celu optymalizacji zasobów).
  2. Używaj metod kontrolera: forward(), reverse(), repeat(), stop() do zarządzania animacją.
  3. Subskrybuj zmiany wartości animacji za pomocą słuchacza (addListener), aby aktualizować UI.
  4. Nie zapomnij zwolnić zasobów, wywołując dispose() w metodzie dispose widżetu.

Przykład:

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 przy zmianie animacji
      });
    _controller.forward(); // uruchamia animację
  }

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

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