Vorbește-mi despre animație în Flutter.
sobes.tech AI
Răspuns de la AI
În Flutter, animațiile sunt împărțite în două tipuri principale: implicite și explicite.
-
Animațiile implicite sunt animații simple care gestionează automat schimbările de stare ale widget-ului. De exemplu, AnimatedContainer își schimbă parametrii (culoare, dimensiune) lin în timpul modificării proprietăților, fără a fi nevoie să scrii controlori de animație.
-
Animațiile explicite oferă control total asupra procesului de animație. Pentru acestea se folosește AnimationController, care controlează timpul și progresul animației. Cu Tween și Animation poți seta modul în care valorile se schimbă în timp.
Exemplu de animație implicită:
AnimatedContainer(
duration: Duration(seconds: 1),
width: _selected ? 200 : 100,
height: _selected ? 200 : 100,
color: _selected ? Colors.blue : Colors.red,
child: ...,
)
Exemplu de animație explicită:
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();
}
}
Astfel, Flutter oferă instrumente puternice pentru crearea de animații fluide și receptive, care îmbunătățesc experiența utilizatorului.