Animasi Dasar: AnimatedContainer
Penjelasan
AnimatedContainer adalah cara PALING SEDERHANA membuat animasi di Flutter (disebut "implicit animation") — kamu TIDAK PERLU menulis kode animasi manual (keyframe, interpolasi), cukup ubah nilai properti (width, height, color, dst) lewat setState(), dan Flutter OTOMATIS meng-animasikan transisi dari nilai lama ke nilai baru selama duration yang ditentukan.
Contoh Konsep
class KotakAnimasi extends StatefulWidget {
const KotakAnimasi({super.key});
@override
State<KotakAnimasi> createState() => _KotakAnimasiState();
}
class _KotakAnimasiState extends State<KotakAnimasi> {
bool besar = false;
@override
Widget build(BuildContext context) {
return GestureDetector(
onTap: () => setState(() => besar = !besar),
child: AnimatedContainer(
duration: const Duration(milliseconds: 300),
width: besar ? 200 : 100,
height: besar ? 200 : 100,
color: besar ? Colors.blue : Colors.red,
),
);
}
}
Praktikum
Buat StatefulWidget dengan AnimatedContainer yang, saat di-tap lewat GestureDetector, berubah opacity dari 1.0 ke 0.3 (dan sebaliknya) dengan duration 500 milliseconds.
Ketik/edit bebas di sini untuk latihan — kode ini tidak dijalankan.
Tips
AnimatedContainer HANYA meng-animasikan properti yang memang didukungnya (width, height, color, padding, dst) — untuk animasi yang lebih kompleks/kustom (mis. animasi rotasi berulang, animasi berbasis fisika), butuh AnimationController manual ("explicit animation"), topik lanjutan di luar cakupan materi dasar ini.