Flutter'daki animasyonlar hakkında bana bilgi ver.
sobes.tech yapay zeka
AI'dan gelen yanıt
Flutter'da animasyonlar iki ana türe ayrılır: örtük ve açık animasyonlar.
-
Örtük animasyonlar basit animasyonlardır ve widget'ın durum değişikliklerini otomatik olarak yönetirler. Örneğin, AnimatedContainer özellikleri değiştiğinde renk, boyut gibi parametreleri pürüzsüzce değiştirir ve animasyon denetleyicileri yazmaya gerek kalmaz.
-
Açık animasyonlar ise animasyon süreci üzerinde tam kontrol sağlar. Bunun için AnimationController kullanılır ve bu, zaman ve ilerlemeyi kontrol eder. Tween ve Animation ile değerlerin zaman içindeki değişimini belirleyebilirsiniz.
Örtük animasyon örneği:
AnimatedContainer(
duration: Duration(seconds: 1),
width: _selected ? 200 : 100,
height: _selected ? 200 : 100,
color: _selected ? Colors.blue : Colors.red,
child: ...,
)
Açık animasyon örneği:
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();
}
}
Bu şekilde Flutter, pürüzsüz ve duyarlı animasyonlar oluşturmaya olanak tanıyan güçlü araçlar sağlar ve kullanıcı deneyimini artırır.