Sobes.tech
Junior — Middle

Kaip valdyti animaciją naudojant AnimationController jūsų programoje?

sobes.tech AI

Atsakymas iš AI

Flutter'e animacijai valdyti naudojama AnimationController klasė. Ji leidžia pradėti, sustabdyti, kartoti ir kontroliuoti animacijos progresą.

Pagrindiniai žingsniai:

  1. Sukurkite AnimationController widget'o būsenoje (dažniausiai initState metode), nurodydami animacijos trukmę ir vsync (resursų optimizavimui).
  2. Naudokite kontrolerio metodus: forward(), reverse(), repeat(), stop() animacijai valdyti.
  3. Prenumeruokite animacijos reikšmės pokyčius per addListener, kad atnaujintumėte UI.
  4. Nepamirškite išlaisvinti išteklių iškviesdami dispose() widget'o dispose metode.

Pavyzdys:

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(() {}); // atnaujina UI keičiantis animacijai
      });
    _controller.forward(); // pradeda animaciją
  }

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

  @override
  Widget build(BuildContext context) {
    return Opacity(
      opacity: _controller.value, // reikšmė nuo 0.0 iki 1.0
      child: YourWidget(),
    );
  }
}