Apakah kamu ingin meningkatkan tampilan aplikasi Flutter dengan animasi yang menarik? Animasi bukan hanya mempercantik aplikasi, tapi juga meningkatkan pengalaman pengguna secara signifikan.
Dengan widget AnimatedContainer, kamu dapat membuat animasi dengan cara yang sederhana dan efisien tanpa perlu memahami kode kompleks. Artikel ini akan membimbingmu melalui dasar-dasar AnimatedContainer.
Yuk, pelajari cara membuat aplikasi lebih interaktif dengan penggunaan animasi yang mudah dipahami, bahkan untuk pemula! Mari mulai perjalananmu untuk menguasai animasi di Flutter!
Baca Juga: Membuat Splash Screen Sederhana Menggunakan Flutter
Daftar Isi Artikel
ToggleApa Itu Animasi di Flutter?
Animasi di Flutter memungkinkan kamu menghidupkan elemen UI dan menciptakan transisi yang halus antar state. Dengan animasi, aplikasi tidak hanya terlihat menarik tetapi juga memberikan feedback visual yang meningkatkan pengalaman pengguna.
Dalam Flutter, sistem animasi dibangun di atas Animation Framework yang menggunakan AnimationController untuk mengontrol transisi.
Jenis Animasi di Flutter
Flutter menawarkan dua jenis animasi utama:
- Animasi Implisit: Animasi yang otomatis terjadi saat properti widget berubah, seperti dengan AnimatedContainer.
- Animasi Eksplisit: Memberikan kontrol penuh kepada developer melalui AnimationController dan Tween.
Dengan memahami konsep ini, kamu dapat menciptakan animasi menarik seperti fading, scaling, rotating, hingga transformasi kompleks lainnya.
Baca Juga: Apa Itu Flutter Dan Cara Kerja Flutter !!
Mengenal AnimatedContainer
Widget AnimatedContainer memudahkan kamu untuk membuat animasi implisit di Flutter. Dengan widget ini, perubahan properti seperti warna, ukuran, atau dekorasi akan secara otomatis dianimasikan oleh Flutter tanpa perlu pengaturan manual yang rumit.
Bagaimana Cara Kerja AnimatedContainer?
Ketika kamu mengubah properti dalam setState, Flutter akan menghitung transisi dari nilai awal ke nilai baru dan menjalankan animasinya secara otomatis. Ini membuat proses animasi jauh lebih sederhana dibandingkan menggunakan AnimationController.
Properti yang Bisa Dianimasikan
Berikut beberapa properti yang dapat kamu animasikan dengan AnimatedContainer:
- color: Warna latar belakang.
- width: Lebar container.
- height: Tinggi container.
- decoration: Dekorasi seperti border atau radius.
- transform: Transformasi geometris.
- curve: Gaya animasi seperti ease-in, ease-out, atau bounce.
Dengan properti ini, kamu dapat membuat elemen UI yang responsif dan menarik.
Cara Menganimasikan Properti dengan AnimatedContainer
Berikut adalah langkah-langkah untuk membuat animasi menggunakan AnimatedContainer:
1. Buat Variabel State
Buat variabel state untuk mengontrol perubahan properti. Contoh:
bool isExpanded = false;
2. Buat Widget AnimatedContainer
Tambahkan widget AnimatedContainer dan tetapkan properti awal:
AnimatedContainer( duration: Duration(milliseconds: 500), width: isExpanded ? 200 : 100, height: isExpanded ? 200 : 100, color: isExpanded ? Colors.blue : Colors.red, );
3. Tambahkan Interaksi Pengguna
Gunakan tombol atau gesture untuk mengubah state:
ElevatedButton( onPressed: () { setState(() { isExpanded = !isExpanded; }); }, child: Text(‘Ubah Ukuran’), );
Ketika tombol ditekan, nilai state berubah dan memicu animasi.
4. Contoh Kode Lengkap
class AnimatedContainerExample extends StatefulWidget { @override _AnimatedContainerExampleState createState() => _AnimatedContainerExampleState(); } class _AnimatedContainerExampleState extends State<AnimatedContainerExample> { bool isExpanded = false; @override Widget build(BuildContext context) { return Column( mainAxisAlignment: MainAxisAlignment.center, children: [ AnimatedContainer( duration: Duration(milliseconds: 500), width: isExpanded ? 200 : 100, height: isExpanded ? 200 : 100, color: isExpanded ? Colors.blue : Colors.red, child: Center(child: Text(“Animasi”)), ), ElevatedButton( onPressed: () { setState(() { isExpanded = !isExpanded; }); }, child: Text(“Ubah Ukuran”), ), ], ); } }
Implementasi Transisi Visual dengan AnimatedContainer
Kamu bisa menggunakan AnimatedContainer untuk menambahkan transisi yang halus ke berbagai elemen UI seperti tombol, card, atau layar.
Membuat Transisi pada Tombol
Gunakan GestureDetector untuk mendeteksi tap atau hover:
GestureDetector( onTap: () { setState(() { isPressed = !isPressed; }); }, child: AnimatedContainer( duration: Duration(milliseconds: 300), width: isPressed ? 150 : 100, height: isPressed ? 50 : 40, decoration: BoxDecoration( color: isPressed ? Colors.green : Colors.orange, borderRadius: BorderRadius.circular(10), ), ), );
Adapun Tips untuk Animasi Halus yaitu dengan melakukan:
- Gunakan durasi yang tidak terlalu cepat atau lambat, seperti 300–500 ms.
- Coba gaya animasi (curve) seperti Curves.easeInOut untuk transisi alami.
Membuat Animasi yang Menarik dengan AnimatedContainer
AnimatedContainer adalah salah satu widget Flutter yang sangat berguna untuk membuat animasi implisit yang menawan. Widget ini memudahkan Kamu mengatur animasi berbagai properti visual seperti warna, ukuran, bentuk, hingga transformasi dengan mudah. .
1. Efek Transformasi
AnimatedContainer mendukung animasi transformasi melalui properti transform, yang mencakup:
- Penskalaan: Mengubah ukuran elemen dengan memperbesar atau memperkecilnya. Contoh: mengecilkan sebuah kotak hingga setengah dari ukuran awalnya sambil tetap mempertahankan posisinya di tengah.
- Translasi: Menggeser elemen secara horizontal atau vertikal.
- Rotasi: Memutar elemen searah atau berlawanan arah jarum jam.
2. Perubahan Dekorasi
Widget ini memungkinkan animasi aspek dekorasi yang beragam, seperti:
- Warna Latar Belakang: Mengubah warna latar belakang secara bertahap.
- Border: Menganimasikan warna, ketebalan, atau radius sudut dari border. Contoh yang diberikan dalam artikel menunjukkan perubahan warna, radius, dan ketebalan border.
- Radius: Menyesuaikan radius sudut elemen untuk menghasilkan efek membulat atau persegi.
3. Animasi Properti Visual
Beberapa properti visual yang dapat dianimasikan antara lain:
- Warna: Mengubah warna elemen secara perlahan.
- Lebar dan Tinggi: Menyesuaikan ukuran elemen baik secara horizontal maupun vertikal.
Hadirkan Animasi Halus di Aplikasi Flutter Kamu
AnimatedContainer mempermudah pembuatan animasi di Flutter dengan transisi visual yang halus dan menarik, meningkatkan pengalaman pengguna aplikasi Kamu. Saatnya bereksperimen dan menciptakan aplikasi yang lebih interaktif dan responsif!
Ingin belajar Flutter lebih mendalam? Bergabunglah di kursus Flutter online ITBOX. Nikmati pembelajaran fleksibel dengan metode self-teaching melalui video, didukung 10.000 alumni, materi up-to-date, dan forum diskusi.
Selesaikan kursus dan dapatkan sertifikat gratis. Khusus paket bundle, kamu juga mendapatkan sesi konsultasi bulanan via Zoom dengan mentor berpengalaman.




