CodeBlanks Logo Icon CodeBlanks

AnimationController

AnimationController ile animasyonu denetlemeyi öğrenirsin.

AnimationController nedir?

AnimationController, animasyonun süresini, ilerlemesini ve başlatılmasını denetleyen nesnedir. vsync parametresi gerektirir; bu yüzden State sınıfı SingleTickerProviderStateMixin ile kullanılır. duration ile süreyi, forward ile başlatırsın.

class _MyState extends State<MyWidget> with SingleTickerProviderStateMixin {
  late AnimationController ctrl;

  @override
  void initState() {
    ctrl = AnimationController(
      vsync: this,
      duration: const Duration(seconds: 1),
    );
    super.initState();
  }
}

dispose ve repeat

AnimationController bellek sızıntısını önlemek için dispose metodunda kapatılmalıdır. repeat ile sürekli döngü, reverse ile geriye doğru çalıştırabilirsin. Değeri 0.0 ile 1.0 arasında bir double'dır.

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

Uygulama AnimationController oluştur

_EmptyVsync adında TickerProvider uygulayan bir sınıf tanımla. main içinde AnimationController oluştur (vsync: _EmptyVsync(), duration 1 saniye) ve value değerini yazdır.

Başlangıç kodu

main.dart
import 'package:flutter/material.dart';

// _EmptyVsync sınıfını tanımla (TickerProvider uygular)

void main() {
  // AnimationController oluştur (vsync ve duration 1 saniye) ve value değerini yazdır
}

Örnek çözüm

main.dart
import 'package:flutter/material.dart';

class _EmptyVsync implements TickerProvider {
  @override
  Ticker createTicker(TickerCallback onTick) => Ticker(onTick);
}

void main() {
  final controller = AnimationController(
    vsync: _EmptyVsync(),
    duration: Duration(seconds: 1),
  );
  print(controller.value);
  controller.dispose();
}

Beklenen çıktı

0.0

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 AnimationController'ın vsync parametresi ne işe yarar?

  • Widget boyutu verir
  • Her frame'de animasyonu senkronize günceller Doğru cevap
  • Çizim yapar
  • Renk belirler

Açıklama: vsync, AnimationController'a her frame'de güncellenmesi için bir TickerProvider sağlar; bu da akıcı animasyon üretir.

2 vsync parametresini ekle

Soru
ctrl = AnimationController(
  ____: this,
  duration: const Duration(seconds: 1),
);
Cevap
ctrl = AnimationController(
  vsync: this,
  duration: const Duration(seconds: 1),
);

Açıklama: AnimationController'ın vsync parametresi bir TickerProvider bekler; State içinde this verilir.

3 AnimationController parçaları

Kavram Anlamı
AnimationController Animasyonu denetler
vsync Frame sağlayıcı
SingleTickerProviderStateMixin vsync kaynağı
forward Animasyonu başlatır

İleri seviye bölümündeki tüm dersler