Sobes.tech
Middle

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.