Պատմեք ինձ 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-ը առաջարկում է հզոր գործիքներ հարթ և արձագանքող անիմացիաներ ստեղծելու համար, որոնք բարելավում են օգտատերերի փորձը։