Flutter Flutter Animation – Membuat Animasi Properti Container by Anton Prafanto 4 years ago 0 Comments Untuk teman-teman yang akan baru memulai belajar Flutter silahkan masuk ke artikel ini dulu ya teman-teman ➡ Aplikasi Pertamaku “Halo Semuaaa…“. Jika sudah yuk lanjut baca artikel ini… Jangan lupa baca artikel sebelumnya ya teman-teman ➡ Hukum Fisika Pada Animasi Widget Seperti yang teman-teman ketahui, class Container menyediakan cara mudah untuk membuat widget dengan properti tertentu height, background color, padding, borders, dan masih banyak lagi. Animasi sederhana sering kali melibatkan perubahan properti-properti pada Container selama aplikasi dijalankan. Misalnya, ketika kita ingin membuat animasi perubahan warna latar belakang dari abu-abu menjadi warna hijau yang tujuannya untuk menunjukkan bahwa item telah dipilih oleh pengguna. Untuk membuat animasi pada banyak properti di Container, Flutter menyediakan widgetAnimatedContainer. Sama halnya seperti widget Container, AnimatedContainer mengizinkan kita untuk mendefinisikan width, height, background colors, dan lain-lain. Namun saat AnimatedContainer di rebuilt dengan properti baru, AnimatedContainer secara otomatis teranimasikan antara value lama dan baru. Pada Flutter, jenis animasi ini dikenal sebagai “implicit animations”. Artikel ini nantinya akan menjelaskan cara menggunakan AnimatedContainer untuk menganimasikan size, background color, dan border radius saat pengguna menekan tombol ▶. Berikut langkah-langkahnya: Membuat StatefulWidget menggunakan default properties. Membuat AnimatedContainer menggunakan properti. Memulai animasi dengan melakukan rebuilding menggunakan properti baru. 1. Membuat StatefulWidget menggunakan default properties Pertama kita buat class StatefulWidget dan State, gunakan custom State class untuk mendefinisikan properti yang berubah selama aplikasi dijalankan. Dalam hal ini properti yang harus kita definisikan yaitu width, height, color, dan border radius. Namun kita juga dapat mendefinisikan properti-properti tersebut menggunakan default value. Pada cuplikan program di bawah, properti termasuk ke dalam custom State class sehingga dapat di-update saat pengguna menekan tombol ▶. class AnimatedContainerApp extends StatefulWidget { @override _AnimatedContainerAppState createState() => _AnimatedContainerAppState(); } class _AnimatedContainerAppState extends State<AnimatedContainerApp> { // Define the various properties with default values. Update these properties // when the user taps a FloatingActionButton. double _width = 50; double _height = 50; Color _color = Colors.green; BorderRadiusGeometry _borderRadius = BorderRadius.circular(8); @override Widget build(BuildContext context) { // Fill this out in the next steps. } } 2. Membuat AnimatedContainer menggunakan properti Selanjutnya kita AnimatedContainer menggunakan properti yang didefinisikan pada langkah 1, lalu letakkan duration yang mendefinisikan seberapa lama animasi pada aplikasi berjalan. AnimatedContainer( // Use the properties stored in the State class. width: _width, height: _height, decoration: BoxDecoration( color: _color, borderRadius: _borderRadius, ), // Define how long the animation should take. duration: Duration(seconds: 1), // Provide an optional curve to make the animation feel smoother. curve: Curves.fastOutSlowIn, ); 3. Memulai animasi dengan melakukan rebuilding menggunakan properti baru Langkah terakhir, mulai animasi dengan rebuilding AnimatedContainer menggunakan properti baru. Kemudian trigger rebuild tersebut menggunakan method setState() yang dipanggil menggunakan tombol ▶. Jadi ketika pengguna menekan tombol ▶, properti akan secara otomatis melakukan update width, height, background color dan border radius yang baru. FloatingActionButton( child: Icon(Icons.play_arrow), // When the user taps the button onPressed: () { // Use setState to rebuild the widget with new values. setState(() { // Create a random number generator. final random = Random(); // Generate a random width and height. _width = random.nextInt(300).toDouble(); _height = random.nextInt(300).toDouble(); // Generate a random color. _color = Color.fromRGBO( random.nextInt(256), random.nextInt(256), random.nextInt(256), 1, ); // Generate a random border radius. _borderRadius = BorderRadius.circular(random.nextInt(100).toDouble()); }); }, ); Berikut cuplikan kode dan simulasinya, jika teman-teman menggunakan VSCode jalankan projectnya dengan menekan F5, klik hot reload (⚡) atau klik tombol ▶, maka berikut hasil akhirnya (Klik tombol “▶”): Jika ada pertanyaan silahkan komen dan jika artikel ini dirasa bermanfaat, jangan lupa like dan sharenya ya teman-teman. ??????? Sampai bertemu di artikel selanjutnya. Terima Kasih, Assalamu’alaykum… Salam KODINGINDONESIA Referensi : https://flutter.dev// TAGS :android Flutter mobile android mobile apps Share This Articles Share this article
ESP32 Modul 3 – Menjelajahi Deep Sleep ESP32 (3/4) by Anton Prafanto 4 months ago 0 ESP32 dapat dibangunkan dari mode tidur dalam dengan menyentuh pin tertentu, memungkinkan interaksi...
ESP32 Modul 3 – Menjelajahi Deep Sleep ESP32 (2/4) by Anton Prafanto 4 months ago 0 ESP32 dapat bangun dari mode tidur dalam pada interval waktu tertentu, memungkinkan proyek...
ESP32 Modul 3 – Menjelajahi Deep Sleep ESP32 (1/4) by Anton Prafanto 4 months ago 0 ESP32 memiliki fitur mode tidur dalam (deep sleep) yang dapat mengurangi konsumsi daya...