Sobes.tech
Middle

Պատմեք ինձ Flutter-ում անիմացիայի մասին։

sobes.tech AI

Պատասխան AI-ից

Flutter-ում անիմացիաները բաժանվում են երկու հիմնական տեսակների՝ ենթադրյալ և բացահայտ:

  • Ենթադրյալ անիմացիաներ՝ պարզ անիմացիաներ են, որոնք ավտոմատ կերպով կառավարում են վիդջետի վիճակի փոփոխությունները: Օրինակ, AnimatedContainer-ը հարթ կերպով փոխում է իր պարամետրերը (գույնը, չափը)՝ առանց անիմացիայի վերահսկիչներ գրելու:

  • Բացահայտ անիմացիաներ՝ տրամադրում են լիակատար վերահսկողություն անիմացիայի գործընթացի վրա: Դրանք օգտագործում են AnimationController-ը, որը կառավարում է ժամանակը և անիմացիայի առաջընթացը: Tween և Animation-ի միջոցով կարելի է սահմանել, թե ինչպես են արժեքները փոխվում ժամանակի ընթացքում:

Օրինակ՝ ենթադրյալ անիմացիայի համար:

AnimatedContainer(
  duration: Duration(seconds: 1),
  width: _selected ? 200 : 100,
  height: _selected ? 200 : 100,
  color: _selected ? Colors.blue : Colors.red,
  child: ...,
)

Բացահայտ անիմացիայի օրինակ՝

class MyAnimatedWidget extends StatefulWidget {
  @override
  _MyAnimatedWidgetState createState() => _MyAnimatedWidgetState();
}

class _MyAnimatedWidgetState extends State<MyAnimatedWidget> with SingleTickerProviderStateMixin {
  late AnimationController _controller;
  late Animation<double> _animation;

  @override
  void initState() {
    super.initState();
    _controller = AnimationController(vsync: this, duration: Duration(seconds: 2));
    _animation = Tween<double>(begin: 0, end: 300).animate(_controller);
    _controller.forward();
  }

  @override
  Widget build(BuildContext context) {
    return AnimatedBuilder(
      animation: _animation,
      builder: (context, child) {
        return Container(
          width: _animation.value,
          height: _animation.value,
          color: Colors.blue,
        );
      },
    );
  }

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

Այսպիսով, Flutter-ը առաջարկում է հզոր գործիքներ հարթ և արձագանքող անիմացիաներ ստեղծելու համար, որոնք բարելավում են օգտատերերի փորձը։