Salahsatunya adalah Wordpress Popular Posts. Plugin ini pula yang saya gunakan untuk membuat artikel populer pada sidebar blog Gus Adit ini. Cara membuat artikel populer dengan menggunakan plugin Wordpress Popular Posts adalah sebagai berikut: Pada Dashboard blog Anda, klik Plugins » Add New. Di kotak
Caramemasang gambar animasi lucu di pojok blog (widget animasi blog gratis) Cara membuat text neon light (efek teks yang menyala secara periodik) Cara membuat teks bergerak melingkar mengikuti gerakan mouse atau dalam istilah bahasa Inggris dikenal dengan nama "Circling text trail". Teks tersebut akan bergerak melingkar mengelilingi
ApakahAnda mencari gambar tentang Cara Membuat Widget Bergerak? Jelajahi koleksi gambar, foto, dan wallpaper kami yang sangat luar biasa. Gambar yang baru selalu diunggah oleh anggota yang aktif setiap harinya, pilih koleksi gambar lainnya dibawah ini sesuai dengan kebutuhan untuk mulai mengunduh gambar.
Pertamakamu bisa mematikan Widget dengan menyembunyikannya dari Taskbar, hal ini bisa kamu lakukan dengan dua cara. Klik kanan pada icon Widget di Taskbar. Klik opsi Hide from taskbar. Selain itu, pengaturan yang sama juga bisa ditemukan melalui Settings. Klik kanan pada Taskbar, lalu pilih Taskbar Settings. Klik ( Off) pada opsi Widgets.
Recentpost biasanya menampilkan sejumlah judul artikel yang belum lama sobat posting dalam deretan ke bawah dan tak jarang juga ada yang bergerak ( animasi ) ke bawah. Contohnya sobat bisa lihat di sidebar blog ini. Kali ini saya akan kasih tahu bagaimana cara memasang recent post di blog. Sobat yang berminat silahkan ikuti tutorial berikut. 1.
ap0bkxG. Mencari coding Flutter animation yang lengkap? Yuk langsung simak tutorial belajar flutter animation berikut ini sampai tuntas! Seri belajar flutter animation kali ini akan mengajak Anda menguasai dua point berikut Cara menggunakan kelas-kelas dasar dari pustaka animasi untuk menambahkan efek animasi pada sebuah widget. Momen yang tepat untuk menggunakan AnimatedWidget dan AnimatedBuilder. Anda juga akan belajar bagaimana cara membuat animasi yang “eksplisit” dengan Flutter. Setelah memahami beberapa konsep, kelas dan metode esensial dari perpustakaan animasi, kami akan menunjukkan 5 contoh pembuatan animation Flutter yang dibangun di atas satu sama lain. Dari sinilah Anda akan melihat berbagai sisi pustaka animasi Flutter secara mendalam. Flutter SDK juga menyediakan animasi eksplisit bawaan, seperti FadeTransition, SizeTransition, dan SlideTransition. Animasi sederhana ini diaktifkan oleh pengaturan pada titik awal dan akhir pemrograman. Mereka lebih mudah diterapkan daripada animasi eksplisit khusus atau custom. Belajar Flutter Animation Konsep dan Kelas EsensialFlutter AnimationCurvedÂAnimat Animasi5 Contoh Flutter AnimationRendering Animasi di FlutterMenyederhanakan Animasi dengan AnimatedWidgetMeninjau Progres Animasi di FlutterPemfaktoran Ulang dengan AnimatedBuilderMembuat Animasi secara Bersamaan Belajar Flutter Animation Konsep dan Kelas Esensial Poin penting untuk diingat Animasi – merupakan kelas inti di perpustakaan animation Flutter– menginterpolasi nilai yang digunakan untuk memandu jalannya sebuah animasi. Objek Animasi mengetahui status animasi saat ini misalnya, apakah animasi mulai berjalan, berhenti, atau bergerak maju atau mundur, tetapi komponen ini tidak tahu apapun terkait bentuk yang muncul di layar. AnimationController dipakai untuk mengelola Animasi. CurvedAnimation mendefinisikan perkembangan desain dalam bentuk kurva non-linier. Tween menginterpolasi antara rentang data seperti yang digunakan oleh objek yang dianimasikan. Misalnya, Tween mungkin mendefinisikan interpolasi dari merah ke biru, atau dari 0 hingga 255. Gunakan Listeners dan StatusListeners untuk memantau perubahan status animasi. Sistem animasi di Flutter didasarkan pada objek Animasi yang Anda ketik. Terdapat dua cara bagi Widget untuk menggabungkan animasi secara langsung ke fungsi build mereka. Pertama, Widget membaca nilai animasi saat ini dan mendengarkan perubahan statusnya. Atau kedua, mereka memakai sebuah animasi sebagai dasar untuk animasi yang lebih rumit, dan yang mereka teruskan ke Widget lain. Flutter Animation Objek flutter animation tidak tahu apa-apa terkait bentuk yang muncul di layar komputer. Animasi hanya sebatas kelas abstrak yang memahami nilai dan statusnya saat ini selesai atau diberhentikan. Salah satu jenis animasi yang umum digunakan adalah Animation. Objek animasi secara berurutan menghasilkan angka yang diinterpolasi antara dua nilai selama durasi tertentu. Output dari objek Animasi bisa berupa angka linear, kurva, fungsi langkah, atau pemetaan lain sesuai rancangan Anda. Animasi pun dapat bergerak secara terbalik atau tiba-tiba berputar arah di tengah perjalanan, tergantung pada bagaimana cara Anda mengendalikannya. Lebih jauh lagi, sebuah animasi bisa menginterpolasi varian lain selain double, misalnya Animation atau Animation. Setiap objek animasi memiliki status, yang mana nilainya selalu tersedia dalam anggota .value. Selain tidak tahu akan rupa yang muncul di layar, objek animasi turut tidak tahu-menahu tentang rendering atau fungsi build. CurvedÂAnimation CurvedAnimation mendefinisikan progres animasi dalam bentuk kurva non linear. Adapun coding CurvedAnimation adalah animation = CurvedAnimationparent controller, curve Catatan kelas Curves dapat mendefinisikan banyak kurva yang sering digunakan, ataupun kurva custom yang Anda susun sendiri. Contoh coding CurvedAnimation import 'dartmath'; class ShakeCurve extends Curve { override double transformdouble t => sint * pi * 2; } Telusuri dokumentasi Curves untuk mendapatkan daftar lengkap konstanta kurva Flutter dengan pratinjau visual. CuverdAnimation dan AnimationController akan dijelaskan pada bagian selanjutnya merupakan bagian dari Animation, jadi Anda bisa melewati keduanya secara bergantian. Khusus untuk CurvedAnimation, ia dapat menjadi pembungkus objek yang dimodifikasi. Kita tidak membuat subclass AnimationController untuk menerapkan suatu kurva. AnimationController AnimationController adalah objek animation Flutter khusus yang menghasilkan nilai baru setiap kali komputer siap untuk mengolah bingkai baru. Secara default, AnimationController menghasilkan angka dari 0,0 hingga 1,0 secara linier dalam durasi tertentu. Sebagai contoh, coding berikut ini bisa untuk membuat objek animasi Flutter, tetapi tidak untuk menjalankannya controller = AnimationControllerduration const Durationseconds 2, vsync this; AnimationController diturunkan dari Animation, sehingga dapat digunakan di mana pun objek animation diperlukan. Namun, AnimationController memiliki metode tambahan untuk mengontrol animasi. Misalnya, Anda memulai animasi dengan metode .forward. Kemudian, serangkaian angka akan dihasilkan oleh metode ini – biasanya 60 angka per detik – dan mereka “terikat” ke refresh layar. Setelah semua angka sukses dibuat, setiap objek animasi kini bisa memanggil objek Listener yang terlampir di pustaka. Cek juga bagian RepaintBoundary terkait cara membuat daftar tampilan kustom dari setiap anak animasi. Saat membuat AnimationController, Anda akan meneruskan argumen vsync. Kehadiran vsync mencegah animasi di luar layar menghabiskan sumber daya yang tidak perlu. Anda dapat menggunakan objek stateful sebagai vsync dengan menambahkan SingleTickerProviderStateMixin ke definisi kelas. Catatan Dalam beberapa kasus, sebuah posisi bisa melebihi rentang dari AnimationController. Misalnya, fungsi fling memungkinkan Anda untuk memberikan kecepatan, gaya, dan posisi melalui objek Force. Posisinya bias berupa apa saja dan bisa di luar kisaran 0,0 hingga 1,0. CurvedAnimation juga dapat melebihi rentang 0,0 hingga 1,0, bahkan ketika AnimationController tidak. Output dari CurvedAnimation dapat memiliki jangkauan yang lebih luas daripada input-nya, bergantung dari jenis kurva yang dipilih digunakan. Misalnya, kurva elastis seperti secara signifikan men-overshoots atau undershoots rentang nilai default. Tween Secara default, objek AnimationController berkisar dari 0,0 hingga 1,0. Namun kalau Anda memerlukan rentang yang berbeda, atau menggunakan tipe data lain, maka konfigurasi animasi dengan Tween untuk menginterpolasinya ke rentang atau tipe data custom. Misalnya, coding Tween berikut mengubah dari ke tween = Tweenbegin -200, end 0; Tween adalah stateless object objek tanpa status yang hanya bekerja di awal dan akhir. Satu-satunya tugas Tween adalah menentukan pemetaan dari rentang input ke rentang output. Rentang input umumnya 0,0 hingga 1,0, tetapi itu bukanlah syarat wajib dalam coding Tween. Tween diturunkan dari Animatable, bukan Animation. Animatable, seperti Animation, tidak harus menghasilkan output double. Misalnya, ColorTween merinci progresi percampuran dua warna dalam animasi. colorTween = ColorTweenbegin end Objek Tween tidak menyimpan status apa pun. Sebaliknya, ia menyediakan metode evaluateAnimation animation yang menerapkan fungsi pemetaan ke nilai animasi saat ini. Nilai objek animasi saat ini dapat ditemukan dalam metode .value. Fungsi evaluasi juga melaksanakan sejumlah fungsi pemeliharaan sistem animasi, seperti memastikan bahwa titik awal dan akhir dikembalikan seperti semula saat nilai animasi mencapai 0,0 dan 1,0. Untuk menggunakan objek Tween, panggil animate pada Tween, lalu teruskan ke objek controller. Misalnya, contoh kode berikut menghasilkan nilai integer dari 0 hingga 255 selama 500 ms AnimationController controller = AnimationController duration const Durationmilliseconds 500, vsync this; Animation alpha = IntTweenbegin 0, end 255.animatecontroller; Catatan Metode animate mengembalikan Animation, bukan Animatable. Contoh di bawah ini memperlihatkan pemakaian controller, curve dan Tween AnimationController controller = AnimationController duration const Durationmilliseconds 500, vsync this; final Animation curve = CurvedAnimationparent controller, curve Animation alpha = IntTweenbegin 0, end 255.animatecurve; Notifikasi Animasi Objek Animasi dapat memiliki Listeners dan StatusListeners, yang didefinisikan dengan addListener dan addStatusListener. Listener dipanggil setiap kali nilai animasi berubah. Fungsi umum dari Listener adalah memanggil setState untuk mengulang pembangunan rebuild. StatusListener dipanggil ketika animasi dimulai, berakhir, bergerak maju, atau bergerak mundur, seperti yang didefinisikan oleh AnimationStatus. Contoh di bagian selanjutnya akan memperlihatkan pemakaian metode addListener, dan memantau kemajuan animasi Flutter dengan addStatusListener. 5 Contoh Flutter Animation Setelah memahami konsep dan elemen dasar, berikutnya mari simak 5 contoh coding animasi di Flutter berikut ini Rendering Animasi di Flutter Poin yang akan dibahas Menambahkan animasi sederhana ke Widget memakai addListener dan setState. Menggunakan fungsi addListener untuk memanggil setState di setiap kali Animation menciptakan series angka baru. Mendefinisikan AnimationController dengan parameter bersyarat vsync. Memahami arti dan fungsi bagian “. .” dari sintaksis “. . addListener” – bentuk kode ini juga dikenal dengan nama cascade notation Membuat kelas yang rahasia private dengan membubuhkan garis bawah _ di awal nama. Sejauh ini Anda sudah mempelajari cara menghasilkan angka animasi berurutan dari waktu ke waktu, namun, masih belum ada hal yang kita render ke layar. Untuk merender animasi di Flutter, Anda harus menyimpan objek animasi sebagai bagian dari Widget. Kemudian gunakan nilai-nilainya untuk menentukan cara terbaik menggambar gerakan animasi. Berikut adalah coding dari aplikasi untuk menggambar logo Flutter tanpa animasi import 'packageflutter/ void main => runAppconst LogoApp; class LogoApp extends StatefulWidget { const LogoApp{ override State createState => _LogoAppState; } class _LogoAppState extends State { override Widget buildBuildContext context { return Center child Container margin const 10, height 300, width 300, child const FlutterLogo, , ; } } Sumber app animate0 Kemudian, contoh di bawah memperlihatkan modifikasi dari kode di atas untuk menganimasikan logo supaya “bergerak tumbuh” dari nol menjadi penuh full size. Saat mendefinisikan AnimationController, Anda juga harus meneruskan objek vsync. {animate0 → animate1}/lib/ Viewed -9,16 +9,39 9 9 State createState => _LogoAppState; 10 10 } 11 - class _LogoAppState extends State { 11 + class _LogoAppState extends State with SingleTickerProviderStateMixin { 12 + late Animation animation; 13 + late AnimationController controller; 14 + 15 + override 16 + void initState { 17 + 18 + controller = 19 + AnimationControllerduration const Durationseconds 2, vsync this; 20 + animation = Tweenbegin 0, end 300.animatecontroller 21 + ..addListener { 22 + setState { 23 + // State yang berubah di sini adalah nilai objek animasi. 24 + }; 25 + }; 26 + 27 + } 28 + 12 29 override 13 30 Widget buildBuildContext context { 14 31 return Center 15 32 child Container 16 33 margin const 10, 17 - height , 18 - width , 34 + height 35 + width 19 36 child const FlutterLogo, 20 37 , 21 38 ; 22 39 } 40 + 41 + override 42 + void dispose { 43 + 44 + 45 + } 23 46 } Sumber app animate1 Fungsi addListener memanggil setState, jadi setiap kali animasi menghasilkan angka baru, maka bingkai saat ini ditandai “kotor” dan memaksa build untuk dipanggil lagi. Di build, ukuran kontainer berubah karena tinggi dan lebarnya sekarang diatur menggunakan alih-alih nilai hardcoded. Eliminasi pengontrol ketika State objek dihapus untuk mencegah terjadinya kebocoran memori. Animasi Flutter Anda kini sudah selesai dibuat! Bonus tips Dart programming Anda mungkin tidak familiar dengan cascade notation dari Dart—tanda dua titik di .. addListener. Arti dari sintaksis ini adalah pemanggilan metode addListener dengan nilai yang dikembalikan dari animate. Contoh pemakaiannya animation = Tweenbegin 0, end 300.animatecontroller ..addListener { // }; Kode ini setara dengan animation = Tweenbegin 0, end 300.animatecontroller; { // }; Menyederhanakan Animasi dengan AnimatedWidget Poin yang akan dibahas Membuat Widget bergerak dengan kelas pembantu AnimatedWidget alih-alih addListener dan setState. Menggunakan AnimatedWidget untuk membuat Widget yang bisa mengulang animasi yang sama. Pakai AnimatedBuilder untuk memisahkan widget dengan transisinya. Contoh AnimatedWidgets dalam Flutter API AnimatedBuilder, AnimatedModalBarrier, DecoratedBoxTransition, FadeTransition, PositionedTransition, RelativePositionedTransition, RotationTransition, ScaleTransition, SizeTransition, SlideTransition. Kelas dasar AnimatedWidget memungkinkan Anda memisahkan kode widget inti dari kode animasinya. AnimatedWidget tidak perlu mempertahankan objek State untuk menyimpan sebuah animasi. Cukup tambahkan kelas AnimatedLogo berikut lib/ AnimatedLogo class AnimatedLogo extends AnimatedWidget { const AnimatedLogo{ required Animation animation} superlistenable animation; override Widget buildBuildContext context { final animation = listenable as Animation; return Center child Container margin const 10, height width child const FlutterLogo, , ; } } AnimatedLogo menggunakan nilai animasi saat ini saat menggambar dirinya sendiri. Sedangkan LogoApp masih mengelola AnimationController dan Tween, sekaligus meneruskan objek Animation ke AnimatedLogo {animate1 → animate2}/lib/ Viewed -1,10 +1,28 1 1 import 'packageflutter/ 2 2 void main => runAppconst LogoApp; 3 + class AnimatedLogo extends AnimatedWidget { 4 + const AnimatedLogo{ required Animation animation} 5 + superlistenable animation; 6 + 7 + override 8 + Widget buildBuildContext context { 9 + final animation = listenable as Animation; 10 + return Center 11 + child Container 12 + margin const 10, 13 + height 14 + width 15 + child const FlutterLogo, 16 + , 17 + ; 18 + } 19 + } 20 + 3 21 class LogoApp extends StatefulWidget { 4 22 const LogoApp{ 5 23 override 6 24 State createState => _LogoAppState; 7 25 } -15,32 +33,18 15 33 override 16 34 void initState { 17 35 18 36 controller = 19 37 AnimationControllerduration const Durationseconds 2, vsync this; 20 - animation = Tweenbegin 0, end 300.animatecontroller 21 - ..addListener { 22 - setState { 23 - // State yang berubah di sini adalah nilai objek animasi. 24 - }; 25 - }; 38 + animation = Tweenbegin 0, end 300.animatecontroller; 26 39 27 40 } 28 41 override 29 - Widget buildBuildContext context 30 - return Center 31 - child Container 32 - margin const 10, 33 - height 34 - width 35 - child const FlutterLogo, 36 - , 37 - ; 38 - } 42 + Widget buildBuildContext context => AnimatedLogoanimation animation; 39 43 override 40 44 void dispose { 41 45 42 46 43 47 } Meninjau Progres Animasi di Flutter Poin yang akan dibahas Gunakan addStatusListener untuk mendapat pemberitahuan pada perubahan status animasi, seperti memulai, menghentikan, atau membalikkan arah. Jalankan animasi dalam loop tak terbatas dengan membalikkan arah saat animasi telah selesai atau kembali ke keadaan awal. Bisa mengetahui kapan animasi mengubah status, seperti menyelesaikan, bergerak maju, atau berbalik posisi akan sangat membantu para animator. Anda dapat memperoleh notifikasi untuk hal-hal ini dengan mengaktifkan addStatusListener. Contoh coding berikut memodifikasi contoh sebelumnya, sehingga kini bisa menangkap adanya perubahan status dan mencetak pembaruan. Baris yang diberi sorotan adalah bagian yang berubah class _LogoAppState extends State with SingleTickerProviderStateMixin { late Animation animation; late AnimationController controller; override void initState { controller = AnimationControllerduration const Durationseconds 2, vsync this; animation = Tweenbegin 0, end 300.animatecontroller ..addStatusListenerstatus => print'$status'; } // ... } Hasil outputnya Lalu, gunakan addStatusListener untuk membalikkan animasi ke bagian awal atau akhir. Cara ini akan menghasilkan efek “bernapas” {animate2 → animate3}/lib/ Viewed -35,7 +35,15 35 35 void initState { 36 36 37 37 controller = 38 38 AnimationControllerduration const Durationseconds 2, vsync this; 39 - animation = Tweenbegin 0, end 300.animatecontroller 39 + animation = Tweenbegin 0, end 300.animatecontroller 40 + ..addStatusListenerstatus { 41 + if status == { 42 + 43 + } else if status == { 44 + 45 + } 46 + } 47 + ..addStatusListenerstatus => print'$status'; 40 48 41 49 } Pemfaktoran Ulang dengan AnimatedBuilder Poin yang akan dibahas AnimatedBuilder memahami cara merender transisi. AnimatedBuilder tidak tahu cara merender Widget, atau mengolah objek animasi. Pakai AnimatedBuilder untuk mendeskripsikan animasi sebagai bagian dari metode build untuk widget lain. Namun gunakanlah AnimatedWidget untuk menentukan widget dengan animasi yang dapat digunakan berulang resumable. Contoh AnimatedBuilders dalam Flutter API BottomSheet, ExpansionTile, PopupMenu, ProgressIndicator, RefreshIndicator, Scaffold, SnackBar, TabBar, TextField. Salah satu masalah dalam contoh kode pemrograman sebelumnya adalah kita harus ikut mengubah widget yang merender logo ketika mengganti animasi. Maka dari itu, ada baiknya untuk memisahkan sektor-sektor fungsi ke dalam kelas berbeda demi menyederhanakan kinerja Render logo. Definisikan objek animasi. Render tranisis. Pemisahan tersebut bisa diselesaikan dengan kelas AnimatedBuilder. Ia merupakan kelas terpisah dalam susunan pohon render. AnimatedWidget, AnimatedBuilder secara otomatis menangkap notifikasi dari objek animasi dan menandai struktur pohon Widget sebagai “kotor”. Alhasil Anda tidak perlu memanggil addListener secara manual. Dimulai dari bagian bawah pohon widget, kode untuk merender logo sangat mudah class LogoWidget extends StatelessWidget { const LogoWidget{ // Kosongkan bagian height dan width untuk memuat nilai induk animasi override Widget buildBuildContext context { return Container margin const 10, child const FlutterLogo, ; } } Tiga blok tengah dalam diagram semuanya dibuat dalam metode build di GrowTransition, yang ditunjukkan di bawah ini. Widget GrowTransition sendiri bersifat stateless dan menyimpan serangkaian variabel akhir yang diperlukan untuk menentukan animasi transisi. Fungsi build membuat dan mengembalikan AnimatedBuilder, yang menggunakan metode Anonymous builder dan objek LogoWidget sebagai parameternya. Pekerjaan merender transisi sebenarnya terjadi dalam metode Anonymous builder, yang menciptakan Container dengan ukuran yang sesuai untuk memaksa LogoWidget menyusut agar pas dengan frame. Salah satu poin rumit dalam kode di bawah ini adalah bahwa anak animasi terlihat seperti ditentukan dua kali. Namun yang sesungguhnya terjadi adalah referensi luar dari anak yang diteruskan ke AnimatedBuilder, lalu dioper ke penutupan anonim, yang kemudian menggunakan objek itu sebagai anaknya. Hasil bersihnya nanti akan berupa AnimatedBuilder yang terselip di antara dua widget pada pohon render. Contoh codingnya adalah sebagai berikut class GrowTransition extends StatelessWidget { const GrowTransition {required required final Widget child; final Animation animation; override Widget buildBuildContext context { return Center child AnimatedBuilder animation animation, builder context, child { return SizedBox height width child child, ; }, child child, , ; } } Akhirnya, kode untuk menginisialisasi animasi terlihat sangat mirip dengan contoh animate2. Metode initState membuat AnimationController dan Tween, lalu mengikatnya dengan animate. “Keajaiban” terjadi dalam metode build, yang mengembalikan objek GrowTransition dengan LogoWidget sebagai anak, dan objek animasi untuk mendorong terjadinya transisi. Inilah tiga elemen yang tercantum dalam poin-poin yang telah dijabarkan sebelumnya. {animate2 → animate4}/lib/ Viewed -1,27 +1,47 1 1 import 'packageflutter/ 2 2 void main => runAppconst LogoApp; 3 - class extends { 4 - const { 5 - 3 + class LogoWidget extends StatelessWidget { 4 + const LogoWidget{ 5 + 6 + // Leave out the height and width so it fills the animating parent 7 + override 8 + Widget buildBuildContext context { 9 + return Container 10 + margin const 10, 11 + child const FlutterLogo, 12 + ; 13 + } 14 + } 15 + 16 + class GrowTransition extends StatelessWidget { 17 + const GrowTransition 18 + {required required 19 + 20 + final Widget child; 21 + final Animation animation; 6 22 override 7 23 Widget buildBuildContext context { 8 - final animation = listenable as Animation; 9 24 return Center 10 - child 11 - , 12 - , 13 - 14 - , 25 + child AnimatedBuilder 26 + animation animation, 27 + builder context, child { 28 + return SizedBox 29 + height 30 + width 31 + child child, 32 + ; 33 + }, 34 + child child, 15 35 , 16 36 ; 17 37 } 18 38 } 19 39 class LogoApp extends StatefulWidget { 20 40 const LogoApp{ 21 41 override 22 42 State createState => _LogoAppState; -34,18 +54,23 34 54 override 35 55 void initState { 36 56 37 57 controller = 38 58 AnimationControllerduration const Durationseconds 2, vsync this; 39 59 animation = Tweenbegin 0, end 300.animatecontroller; 40 60 41 61 } 42 62 override 43 - Widget buildBuildContext context 63 + Widget buildBuildContext context { 64 + return GrowTransition 65 + animation animation, 66 + child const LogoWidget, 67 + ; 68 + } 44 69 override 45 70 void dispose { 46 71 47 72 48 73 } 49 74 } Membuat Animasi secara Bersamaan Poin yang akan dibahas Kelas Curves mendefinisikan array kurva yang biasa digunakan, dan dapat dipakai bersamaan dengan CurvedAnimation. Di bagian ini, Anda akan mengaplikasikan contoh pemantauan progres animasi menggunakan AnimatedWidget untuk menganimasikan efek masuk in dan keluar out secara kontinu. Anggaplah dalam hal ini Anda ingin menganimasikan efek in dan out, dengan perubahan opasitas animasi dari transparan ke buram. Catatan Contoh ini menunjukkan cara menggunakan beberapa Tweens pada pengontrol animasi yang sama, di mana setiap Tweens mengelola efek yang berbeda dalam animasi. Hal ini hanya untuk tujuan ilustrasi saja. Jika Anda ingin melakukan tweening opacity dan ukuran dalam coding, sebaiknya gunakan FadeTransition dan SizeTransition. Contoh controller = AnimationControllerduration const Durationseconds 2, vsync this; sizeAnimation = Tweenbegin 0, end 300.animatecontroller; opacityAnimation = Tweenbegin end 1.animatecontroller; Anda bisa mendapatkan ukuran animasi dengan dan opacity dengan tetapi penyusun AnimatedWidget hanya mengambil satu objek Animation saja. Untuk mengatasi masalah ini, contoh berikut menampilkan cara membuat objek Tween sendiri dan menghitung nilainya secara eksplisit. Ubahlah AnimatedLogo untuk merangkum objek Tween-nya sendiri, dan metode build -nya memanggil pada objek animasi induk untuk menghitung ukuran dan nilai opacity yang diperlukan. class AnimatedLogo extends AnimatedWidget { const AnimatedLogo{ required Animation animation} superlistenable animation; // Buat Tweens static karena mereka tidak berubah. static final _opacityTween = Tweenbegin end 1; static final _sizeTween = Tweenbegin 0, end 300; override Widget buildBuildContext context { final animation = listenable as Animation; return Center child Opacity opacity child Container margin const 10, height width child const FlutterLogo, , , ; } } class LogoApp extends StatefulWidget { const LogoApp{ override State createState => _LogoAppState; } class _LogoAppState extends State with SingleTickerProviderStateMixin { late Animation animation; late AnimationController controller; override void initState { controller = AnimationControllerduration const Durationseconds 2, vsync this; animation = CurvedAnimationparent controller, curve ..addStatusListenerstatus { if status == { } else if status == { } }; } override Widget buildBuildContext context => AnimatedLogoanimation animation; override void dispose { } } Demikianlah seri belajar flutter animation kali ini. Semoga tutorial coding di atas bermanfaat menambah wawasan Anda, ya! Jangan lupa ikuti terus CODEKEY untuk dapat lebih banyak update tutorial pemrograman lainnya. Baca gratis sekarang hanya di Sampai bertemu lagi! Jasa Pembuatan Aplikasi, Website dan Internet Marketing PT APPKEY PT APPKEY adalah perusahaan IT yang khusus membuat aplikasi Android, iOS dan mengembangkan sistem website. Kami juga memiliki pengetahuan dan wawasan dalam menjalankan pemasaran online sehingga diharapkan dapat membantu menyelesaikan permasalahan Anda.
Sejak Elementor , kami dapat membuat animasi di Elementor. Jika Anda pernah ingin tahu cara membuat animasi di Elementor, Anda berada di tempat yang tepat. Pembaruan Elementor itu telah menambahkan 4 efek gerakan berbeda yang dapat Anda gunakan di blog Anda. Kami akan memiliki ikhtisar tentang animasi ini. Mari kita mulai. Cara Menganimasikan Gambar di Elementor Dengan Elementor sekarang dimungkinkan untuk menambahkan animasi pada MemutarGulir HorisontalGulir VertikalSkala Mari kita telusuri secara konkret apa yang terjadi ketika Anda melakukan salah satu dari peristiwa ini. Buat Situs Web Luar Biasa Dengan Elementor pembuat halaman gratis terbaik Mulai sekarang Cara Membuat Animasi Berputar Dari Gambar Pada Elementor Jadi jika Anda ingin membuat animasi berputar untuk gambar Anda, Anda harus menuju ke Advanced Tab , buka bagian Motion Effects, dan aktifkan Scrolling Effects. Kemudian, Anda perlu mengklik opsi Rotate dan memilih ke arah mana gambar harus diputar. Jika Anda ingin membuat animasi yang halus, kami akan menentukan Kecepatan Slider menjadi 1. Tidak perlu mengubah viewport di sini., Terakhir, kita bisa mengatur  Y Anchor Point ke Top untuk membuat gambar berputar dari titik tersebut. Cara Membuat Animasi Slide Pada Scroll Pada Elementor Untuk membuat animasi slide, kita perlu mengaktifkan "Scrolling Effects" seperti yang kita lakukan di bagian sebelumnya. Sekarang kita akan mengaktifkan "Gulir Horizontal", dan menentukan konfigurasi berikut Arah GeserAtur  Kecepatan ke 10 Berikut adalah demo tentang bagaimana tampilan geser pada pengguliran. Cara Membuat Animasi Gulir Vertikal Pada Elementor Sama seperti di bagian sebelumnya, kita perlu mengaktifkan Scrolling Effects. Perbedaannya sekarang adalah kita akan mengaktifkan Vertical Scroll dan menentukan beberapa konfigurasi Tentukan kecepatan menjadi 4Atur arah ke "Turun" Dan itu saja! Anda dapat membiarkan pengaturan lain sebagai default. Cara Membuat Animasi Zoom Pada Elementor Dengan animasi ini, kita akan merasakan bahwa gambar bergerak ke arah kita. Itu bisa sangat berguna untuk menarik perhatian elemen tertentu dari situs web Anda. Jadi, mari kita aktifkan Scrolling Effects. Kemudian, aktifkan Vertical Scroll dan Atur arah ke  BawahAtur Viewport antara 0% dan 40% Kemudian, klik opsi Scale dan atur Speed sama dengan 6. Selain itu, gunakan pengaturan Viewport untuk membuat bagian bawah 20% dan bagian atas 80%. Itu cukup banyak yang perlu Anda ketahui tentang animasi bergulir di Elementor. Cara Mengontrol Transparansi Pada Gulir Pada Elementor Di sini, Anda akan mempelajari cara menggunakan  Pengaturan Viewport  untuk membuat efek gerakan keren saat pengunjung menavigasi situs Anda. Kami akan menerapkan efek gerakan ke latar belakang dan bagian, serta widget, yang memberikan cukup fleksibilitas terkait efek yang ingin kami buat. Singkatnya, inilah yang harus Anda lakukan Pilih gambarBuka tab LanjutTemukan bagian Motion EffectsNyalakan Scrolling Effects Sekarang, kita akan mengaktifkan Horizontal Scroll untuk memastikan gambar bergerak dari kiri ke kanan saat pengguna menggulir halaman ke bawah. Kita juga bisa mengatur  Speed untuk membuat animasi yang halus atau cepat Sekarang, mari masuk ke opsi ViewPort dan lihat perubahan apa yang dapat kita terapkan padanya. Pertama, penting untuk menentukan apa itu ViewPort viewport pengunjung adalah ukuran layar perangkat pengguna yang terlihat. Opsi Viewport memungkinkan kami memilih kapan harus memulai dan menghentikan efek pengguliran yang Anda pilih berdasarkan viewport pengunjung. Misalnya, jika kita menetapkan bagian bawah area pandang menjadi 0% dan bagian atas menjadi 100%, gambar akan mulai bergerak segera setelah terlihat di bagian bawah area pandang pengunjung. Jadi, gambar akan mencapai posisi 'asli' ketika berada di tengah Viewport pengunjung atau, 50% , dan akan terus bergerak hingga mencapai puncak 100%. Konkretnya inilah yang terjadi selama animasi bergulir dari suatu gambar Gambar akan mulai di sebelah kiri dari posisi semula ketika pertama kali muncul di viewport pengunjung viewport pengunjung di 0% Ini akan mencapai posisi semula di tengah viewport pengunjung viewport pengunjung di 50% Itu akan terus meluncur ke kanan dari posisi semula karena pengunjung terus menggulir sampai mencapai 100% Jadi ini berarti bahwa jika kita mengatur  Bawah  Viewport  menjadi 50% dan  Atas  menjadi 100% Gambar akan mulai dari posisi gambar berada di tengah viewport pengunjung 50%, gambar akan mulai bergerak ke kanan hingga gambar mencapai bagian atas viewport pengunjung 100%. Cara Membuat Animasi Efek Transparansi Pada Elementor Untuk contoh ini, kami akan mengaktifkan opsi Transparansi dan Atur arah ke  Fade InSetel  Level  ke  10  ini membuat gambar sangat transparan untuk memulai Jika kita mengatur viewport Bawah ke 0% dan Atas ke 100%, gambar akan transparan saat pertama kali muncul di bagian bawah viewport pengunjung 0%. Saat gambar bergerak ke atas, itu akan menjadi lebih terlihat, akhirnya mencapai tampilan aslinya ketika mencapai bagian atas viewport pengunjung 100%. Jika kita ingin membalikkannya, kita bisa mendefinisikan Fade Out. Kemudian, gambar akan tampak normal pada awalnya dan mengurangi transparansi saat pengunjung menggulir ke bawah. Pilihan lainnya adalah Fade Out In. Dengan yang satu ini, gambar akan mulai dengan status fade-out dan kemudian kembali lagi saat pengunjung terus menggulir. Jika kita mengatur viewport Bawah ke 40% dan Atas ke 60% dengan Fade Out In, maka Gambar akan memudar dari 0% menjadi 40%Ini akan tetap memudar antara 40% hingga 60%Setelah mencapai 60%, itu akan mulai memudar lagi antara 60% dan 100% Sekarang mari kita bermain-main dengan pengaturan yang berbeda untuk menemukan efek yang Anda sukai. Cara Menggunakan Titik Jangkar X dan Y Untuk Efek Animasi Berputar dan Menskala Sekarang mari kita pelajari lebih lanjut tentang titik jangkar X dan Y untuk efek Putar dan Skala di Efek Gerak Elementor. Pada akhir ini, Anda akan tahu bagaimana menerapkan pengaturan ini untuk membuat beberapa efek gerakan keren di situs Anda. Singkatnya, inilah langkah yang akan kita lalui Buka tab LanjutanTemukan pengaturan Motion EffectsNyalakan Scrolling Effects Bagaimana Anchor Points Bekerja di Rotate Animation Mari kita pertimbangkan Efek Rotasi. Klik ikon pensil dengan efek Rotate untuk menyalakannya. Anda dapat membiarkan pengaturan sebagai default. Kemudian, cari pengaturan X Anchor Point dan Y Anchor Point yang muncul di bawah ini. Titik jangkar X dan Y menentukan sumbu di mana gambar berputar. Secara default, keduanya diatur ke Center, yang berarti gambar akan berputar seolah-olah ada 'pin' di tengah gambar. Namun, mengubah titik jangkar X dan/atau Y akan menyebabkan efek rotasi yang berbeda. Misalnya, jika Anda mengatur  X Anchor Point  ke kiri dan  Y Anchor Point  ke atas, gambar akan berputar di sekitar sudut kiri atas Atau, jika Anda menyetel X Anchor Point ke tengah, dan Y Anchor Point ke atas, gambar akan berputar seolah-olah lukisan yang Anda gantung di atas. Apakah Anda mendapatkannya sejauh ini? Mari kita lihat satu lagi. Jika Anda memindahkan X Anchor Point ke kanan, sekarang gambar akan mulai berputar seolah-olah disematkan di sudut kanan atas. Mari kita simpulkan ini. The X Anchor Point menentukan posisi pada sumbu x di mana gambar berputar Dan Titik Jangkar Y melakukan hal yang sama untuk orientasi vertikal Cara Menggunakan Titik Jangkar Dalam Efek Animasi Skala Dengan asumsi Anda memahami dasar-dasar animasi dengan Elementor , mari kita lihat bagaimana ide yang sama ini bekerja dengan efek Skala. Untuk memulai, nonaktifkan efek Rotate, aktifkan efek Scale, dan Atur Arah ke Skala NaikAtur  Kecepatan ke -5 Secara default, X Anchor Point dan Y Anchor Point selalu disetel ke tengah, yang berarti gambar diperkecil ke arah tengah widget gambar. Di sisi lain, jika Anda mengatur titik jangkar ke Atas dan Kiri, gambar akan turun ke sudut kiri atas. Ini adalah ide yang sama persis dengan efek rotasi. Sekarang setelah Anda mengetahui cara kerja titik jangkar X dan Y, Anda dapat melanjutkan dan berlatih untuk menguasai animasi ini dengan baik. Cara Menganimasikan Teks Dengan Efek Tumpang Tindih Pada Elementor Di sini, Anda akan belajar bagaimana menggunakan fitur Horizontal Scroll di Elementor's Motion Effects untuk membuat efek teks animasi yang rapi di situs Anda. Anda akan dapat memindahkan teks melintasi halaman saat pengunjung menggulir. Dan dengan beberapa penyesuaian, Anda bahkan dapat membuat teks berubah warna saat bergerak. Untuk contoh ini, kita akan membahas langkah-langkah berikut Judul abu-abu sederhana yang bergerak ke kanan dan tetap dengan warna yang samaJudul putih dan merah muda yang bergerak ke kiri dan berubah dari putih menjadi merah muda setelah melintasi latar belakang merah muda Membuat Header Pertama Mari kita mulai dengan heading abu-abu solid. Kami akan memilih judul, lalu Buka tab LanjutanTemukan bagian Motion EffectsNyalakan Scrolling Effects Kemudian, klik pensil di sebelah efek Horizontal Scroll untuk masuk ke pengaturannya Ubah Arah ke arah yang Anda inginkan untuk menggulir teks Anda "Ke Kanan" untuk contoh kitaBiarkan pengaturan Kecepatan dan Viewport sebagai default Sekarang judul akan meluncur ke kanan saat pengunjung menggulir halaman ke bawah. Membuat Header Kedua Sekarang, mari kita sedikit lebih maju dan mengubah warna heading saat bergerak. Proses ini melibatkan Membuat duplikat bagian dalamMenggunakan opsi Overflow Hidden untuk menyembunyikan heading dari salah satu bagian setelah melewati bagian dalam Untuk memulai, tambahkan widget Bagian Dalam baru ke bagian tempat Anda ingin meletakkan header, lalu hapus kolom kiri. Kemudian, atur  Tinggi Min  sama dengan 450 px Sekarang mari kita pergi ke tab Style dan mengatur warna latar belakang menjadi merah muda. Terakhir, buka tab Advanced dan atur padding kiri menjadi 33%. Sekarang, tambahkan widget  Heading dan berikan gaya. Anda harus memiliki heading di dalam bagian dalam seperti ini Sekarang, mari kita edit widget Heading dan aktifkan Scrolling Effects di tab Advanced . Kemudian, mari aktifkan pengaturan Horizontal Scroll dan biarkan opsi sebagai default. Sekarang, header Anda akan bergerak ke kiri, tetapi belum berubah warna. Anda dapat melihat bahwa itu masih putih bahkan di latar belakang putih. Untuk memperbaikinya, kami akan menduplikasi bagian dalam. Sekarang, kita akan memiliki dua bagian dalam dan heading yang identik. Anda dapat menggunakan Navigator untuk mengganti nama bagian untuk membantu Anda mengingat yang mana Sekarang, mari pindah ke bagian dalam bawah yang duplikat dan ubah warna latar belakangnya menjadi putih. Anda juga ingin mengubah warna judul menjadi warna yang sama dengan latar belakang di bagian dalam asli Anda. Kemudian, tambahkan margin atas negatif -450 px ke bagian dalam bawah. Sekarang, bagian dalam bawah duplikat akan muncul “di atas†dari bagian dalam asli. Untuk memperbaikinya, kita perlu mengatur Z-Index untuk bagian duplikat ke 1 dan mengatur Z-Index untuk bagian asli ke 2. Kita juga harus memastikan bahwa hanya header merah muda yang muncul saat bergerak di luar bagian dalam. lebar. Berikut adalah bagaimana seharusnya terlihat seperti Untuk mencapai efek ini, buka pengaturan untuk bagian dalam asli . Di tab Layout , temukan opsi Overflow dan atur ke Hidden . Itu saja! Sekarang, hanya heading dari bagian  duplikat  yang akan muncul setelah bergulir melewati bagian dalam, yang menciptakan efek teks perubahan warna yang rapi. Cukup mengesankan bukan? Meringkas Kami berharap tutorial ini akan memberikan petunjuk serius tentang cara membuat animasi dengan Elementor . Ingatlah bahwa Anda harus banyak berlatih untuk menguasai animasi ini. Jangan ragu untuk membagikan panduan ini kepada teman
O Windows Vista conseguiu ao longo do tempo se tornar uma das piores versões que a Microsoft lançou ao longo de sua histĂłria, superando qualquer outra versĂŁo. O problema com esta versĂŁo era que exigiu uma equipe muito poderosa ser capaz de funcionar moderadamente em condições. AlĂ©m disso, nĂŁo ajudou que, no inĂcio, encontramos diferentes widgets que nĂŁo faziam nada mais do que retardar o funcionamento de nossa cĂłpia do Windows. Felizmente para o mundo da informática, a Microsoft nĂŁo deu muito tempo de vida e o Windows 7 chegou rapidamente ao mercado, um dos melhores Windows com permissĂŁo do Windows 10. Os widgets do Windows Vista nos permitiram colocar informações atualizadas em tempo real na área de trabalho do nosso computador, como o clima, a hora, o desempenho de nossos equipamentos, feeds de notĂcias ou redes sociais ... equipe, rapidamente foram descartados pela maioria dos usuários, apesar de ter uma utilidade bastante prática. Se vocĂŞ Ă© um dos usuários que ainda sente falta de widgets, temos uma boa notĂcia, pois atravĂ©s do aplicativo Widgets HD, disponĂvel na Microsoft Store, podemos apreciá-los novamente na área de trabalho do nosso computador. Widgets HD nos permite adicionar os seguintes Widgets para a mesa de nossa equipe RelĂłgio quadrado RelĂłgio digital RelĂłgio mundial RelĂłgio mundial personalizável calendário Tempo Manchetes de notĂcias ĂŤndice de ações Informações de recursos de nossa equipe Galeria Conversor de moedas conversor de unidades Dicionário tradutor Calculadora Notas na tela post-it Velocidade de nossa conexĂŁo. Widgets HD estĂŁo disponĂveis para o seu download completamente grátis. Se quisermos desbloquear todas as opções, temos que passar pelo checkout. De graça, podemos adicionar o Widget de meteorologia, relĂłgio, medidor de CPU, galeria de imagens, calculadora, conversor de unidades e moedas e notas.
Sejak Android widget aplikasi telah memungkinkan pengguna mendapatkan informasi, mengendalikan aplikasi, dan melakukan tugas penting, semuanya dari kenyamanan homescreens mereka. Dalam rangkaian bagian dua ini, saya akan menunjukkan kepada Anda bagaimana memberikan pengalaman pengguna yang lebih baik dengan menambahkan widget aplikasi ke proyek Androidmu. Pada akhir seri, Anda akan membuat widget yang Menampilkan beberapa kumpulan data. Melakukan tindakan unik saat pengguna berinteraksi dengan View tertentu di dalam tata letak widget itu. Pembaruan secara otomatis setiap kali satu periode waktu telah berlalu. Pembaruan dengan data baru sebagai respons terhadap interaksi pengguna. Di postingan pertama ini, kami akan menggunakan tools bawaan Android Studio untuk menghasilkan dengan cepat dan mudah semua file yang dibutuhkan untuk mengirimkan apa saja widget aplikasi Android. Kami kemudian akan memperluas fondasi ini untuk membuat widget yang mengambil dan menampilkan data dan merespons event onClick. Apa itu Widget Aplikasi? Widget aplikasi adalah aplikasi miniatur ringan yang biasanya termasuk dalam salah satu kategori berikut Widget informasi. Widget yang tidak dapat discroll yang menampilkan informasi penting, seperti widget cuaca atau jam. Koleksi widget. Widget yang dapat discroll yang menampilkan serangkaian elemen terkait, seperti galeri foto atau artikel dari publikasi yang sama. Widget koleksi biasanya didukung oleh sumber data, seperti Array atau database. Widget koleksi harus menyertakan ListView, GridView, StackView, atau AdapterViewFlipper. Kontrol widget. Widget yang bertindak sebagai remote control untuk aplikasi Anda, memungkinkan pengguna untuk memicu fungsi yang sering digunakan tanpa perlu meluncurkan aplikasi Anda. Aplikasi yang memutar musik sering memberikan widget yang memungkinkan pengguna bermain, menjeda, dan melewatkan trek langsung dari homescreen mereka. Widget hibrida. Mengapa membatasi diri Anda pada satu kategori, kapan Anda bisa memilih elemen ceri dari beberapa kategori? Sadarilah bahwa pencampuran dan pencocokan dapat menyebabkan pengalaman pengguna yang membingungkan, jadi untuk hasil terbaik Anda harus merancang widget Anda dengan satu kategori dan kemudian menambahkan elemen dari kategori lain sesuai kebutuhan. Misalnya, jika Anda ingin membuat widget yang menampilkan ramalan cuaca hari ini, namun juga memungkinkan pengguna melihat ramalan untuk hari dan lokasi yang berbeda, maka Anda harus membuat widget informasi dan kemudian menambahkan elemen kontrol yang diperlukan sesudahnya. Selain fungsi di atas, sebagian besar widget merespons event onClick dengan meluncurkan aplikasi yang terkait, serupa dengan shortcut aplikasi, namun juga dapat memberikan akses langsung ke konten tertentu dalam aplikasi itu. Widget aplikasi harus ditempatkan di dalam App Widget Host, yang paling umum adalah stok homescreen Android, walaupun ada beberapa Host Widget App pihak ketiga, seperti Nova Launcher dan Apex Launcher yang populer. Sepanjang seri ini, saya akan berbicara tentang widget sebagai sesuatu yang Anda tempatkan di homescreen, namun jika Anda memiliki ingatan samar untuk bisa memasang widget di layar lockscreen, ini bukan sekadar mimpi indah! Antara tingkat API 17 dan 20, adalah mungkin untuk menempatkan widget pada homescreen atau layar lockscreen. Sejak widget lockscreen sudah tidak berlaku lagi di level API 21, dalam seri ini kita akan membuat widget untuk homescreen saja. Mengapa Harus Membuat Widget Aplikasi? Ada beberapa alasan mengapa Anda harus mempertimbangkan untuk menambahkan widget aplikasi ke proyek Android terbarumu. Akses Mudah terhadap Informasi dan Fitur Penting Widget memungkinkan pengguna melihat informasi terpenting aplikasi Anda, langsung dari homescreen mereka. Misalnya, jika Anda telah mengembangkan aplikasi kalender, Anda mungkin membuat widget yang menampilkan detail tentang janji temu pengguna berikutnya. Ini jauh lebih mudah daripada memaksa pengguna meluncurkan aplikasimu dan berpotensi menavigasi beberapa layar, hanya untuk mengambil informasi yang sama. Jika Anda mengembangkan widget kontrol atau widget hibrida dengan elemen kontrol maka pengguna juga bisa menyelesaikan tugas langsung dari homescreen mereka. Melanjutkan contoh kalender kami, widget Anda memungkinkan pengguna membuat, mengedit dan membatalkan janji temu, berpotensi bahkan tanpa harus meluncurkan aplikasimu. Ini berpotensi menghapus beberapa langkah navigasi dari beberapa tugas terpenting aplikasimu, yang hanya dapat memberi dampak positif pada pengalaman pengguna! Akses Langsung ke Semua Layar Paling Penting dari Aplikasimu Mengetuk widget biasanya membawa pengguna ke tingkat atas aplikasi terkait, mirip dengan shortcut aplikasi. Namun, tidak seperti shortcut aplikasi, widget dapat menautkan ke area tertentu dalam aplikasi yang terkait. Misalnya, mengetuk pemberitahuan email Baru yang diterima oleh widget mungkin meluncurkan aplikasi dengan pesan baru yang telah dipilih, sambil mengetuk Create new email mungkin membawa mereka langsung ke Aktivitas ComposeEmail aplikasi Anda. Dengan menyematkan beberapa tautan dalam tata letak widget Anda, Anda dapat memberikan akses mudah satu ketukan ke semua Aktivitas terpenting dari aplikasi Anda. Buat Basis Pengguna yang Loyal dan Terlibat Sebagai keseluruhan ledakan Pokemon Go dan penurunan selanjutnya terbukti, mendapatkan satu ton orang untuk mendownload aplikasi Anda tidak secara otomatis menjamin basis pengguna loyal yang masih akan menggunakan aplikasi Anda hari, minggu, atau bahkan berbulan-bulan. Pengguna seluler adalah kelompok yang cukup mudah berubah, dan dengan memori yang tersedia di smartphone atau tablet Android khas Anda setiap saat, mudah kehilangan jejak aplikasi yang telah Anda pasang pada perangkat Anda. Kemungkinannya adalah, jika Anda mengangkat smartphone Android atau tablet Anda sekarang dan menggesek app drawer, Anda akan menemukan setidaknya satu aplikasi yang benar-benar Anda lupakan. Dengan membuat widget yang menampilkan semua informasi dan fitur yang paling berharga dari aplikasi Anda, Anda memastikan bahwa setiap kali pengguna melirik homescreen mereka, mereka hanya diingatkan tidak hanya bahwa aplikasi Anda ada, namun juga memiliki konten yang bagus. Menambahkan Widget Aplikasi ke Proyek Anda Bahkan widget yang paling dasar membutuhkan banyak kelas dan sumber daya, namun saat Anda membuat widget menggunakan alat bawaan Android Studio, semua file ini dibuat untuk Anda. Karena tidak ada gunanya membuat pengembangan Android lebih sulit dari yang seharusnya, kami akan menggunakan tool ini untuk mulai memulai membangun widget kami. Widget aplikasi harus selalu dikaitkan dengan aplikasi yang mendasarinya, jadi buatlah proyek Android baru dengan pengaturan pilihan Anda. Setelah Android Studio membangun proyek Anda, pilih File> New > Widget > AppWidget dari toolbar Android Studio. Ini meluncurkan menu Configure Component dimana Anda dapat menentukan beberapa pengaturan awal widget Anda. Sebagian besar pilihan ini cukup jelas, namun ada beberapa hal yang patut ditelusuri secara lebih rinci. Resizable API 12+ Jika widget resizable, maka pengguna bisa menambah atau mengurangi jumlah 'cells' yang ditempatinya di homescreen mereka, dengan lama menekan widget dan kemudian menyeret pegangan biru yang muncul di seputar garis besarnya. Bila memungkinkan, Anda harus memberi widget kemampuan untuk mengubah ukuran secara horizontal dan vertikal, karena ini akan membantu widget Anda menyesuaikan diri dengan berbagai konfigurasi layar dan pengaturan homescreen. Jika pengguna memiliki homescreen yang berantakan dengan serius, mungkin widget Anda mungkin tidak muat di homescreen tersebut, kecuali widget Anda dapat disesuaikan. Jika Anda ingin membuat widget yang tidak dapat resizeable, buka menu dropdown Resizable dan pilih Only horizontal, Only vertikal, atau Not resizable. Lebar Minimum dan Tinggi Lebar minimum dan tinggi menentukan jumlah cell yang biasanya akan menempati widget Anda saat ditempatkan di homescreen. Untuk widget resizable, ini adalah yang terkecil pengguna dapat ukurkan widget Anda, sehingga Anda dapat menggunakan nilai-nilai ini untuk mencegah pengguna dari mengecilkan widget Anda ke titik di mana ia menjadi tidak dapat digunakan. Jika widget Anda tidak resizable, maka nilai minimum dan tinggi minimum adalah lebar permanen dan tinggi widget Anda. Untuk meningkatkan kesempatan memasang widget dengan nyaman di berbagai homescreen, disarankan agar Anda tidak menggunakan apapun yang lebih besar dari 4 kali 4 untuk nilai lebar dan tinggi minimum. Sementara lebar dan tinggi yang tepat dari 'cells' homescreen bervariasi antar perangkat, Anda bisa mendapatkan perkiraan kasar berapa banyak DPIs dots per inch widget Anda akan menempati dengan menggunakan rumus berikut 1 70 × number of cells -30 Misalnya, jika widget Anda adalah 2 x 3 cell 1 70 x 2 - 30 = 110 2 70 x 3 - 30 = 180 Widget ini akan menempati sekitar 110 x 180 DPIs pada homescreen pengguna. Jika nilai ini tidak sesuai dengan dimensi cell perangkat tertentu, maka Android akan secara otomatis memutar widget Anda ke ukuran cell terdekat. Tinjau semua opsi di menu ini dan buat perubahan yang diinginkan saya tetap berpegang pada default dan kemudian klik Finish. Android Studio sekarang akan menghasilkan semua file dan sumber daya yang dibutuhkan untuk mengirimkan widget aplikasi dasar. Widget ini tidak terlalu menarik ini pada dasarnya hanyalah blok biru dengan kata Contoh tertulis di atasnya namun widget fungsional yang dapat Anda uji pada perangkat Anda. Untuk menguji widget Install proyek Anda di perangkat fisik Android atau AVD Android Virtual Device. Luncurkan Android's Widget Picker dengan menekan sembarang ruang kosong di homescreen, lalu ketuk kata Widget yang muncul di bagian bawah layar. Gesek melalui Penjelajah Widget sampai Anda melihat widget Contoh biru. Tekan ke bawah widget ini untuk memasukkannya ke homescreen Anda. Masukkan mode resize dengan menekan widget sampai set pegangan biru muncul, lalu seret pegangan ini untuk menambah atau mengurangi jumlah cell yang dimiliki widget ini. Menjelajahi File Widget Aplikasi Widget ini mungkin tidak terlalu banyak, tapi mencakup semua kelas dan sumber daya yang akan kita kerjakan sepanjang sisa seri ini, jadi mari kita lihat file-file ini dan peran yang mereka mainkan dalam memberikan widget aplikasi. Penyedia widget adalah kelas kenyamanan yang berisi metode yang digunakan untuk interface pemrograman dengan widget melalui broadcast event. Di bawah tenda, widget pada dasarnya hanya BroadcastReceiver yang dapat merespons berbagai tindakan, seperti pengguna yang memasang contoh widget baru di homescreen mereka. Yang paling menonjol, penyedia widget aplikasi adalah tempat Anda akan menentukan metode siklus hidup widget Anda, yang bisa dipanggil untuk setiap contoh widget atau hanya untuk contoh tertentu. Meskipun kita cenderung menganggap widget sebagai entitas tunggal yang ditempatkan pengguna di homescreen mereka sekali, tidak ada yang mencegahnya menciptakan beberapa contoh widget yang sama. Mungkin widget Anda dapat disesuaikan, sampai pada titik di mana berbagai contoh dapat memiliki fungsi yang berbeda secara signifikan, atau mungkin pengguna hanya menyukai widget Anda sehingga mereka ingin memasangnya di seluruh homescreen mereka! Mari kita lihat berbagai metode siklus hidup yang dapat Anda terapkan di kelas penyedia widget Event onReceive Android memanggil method onReceive pada BroadcastReceiver yang terdaftar setiap kali event yang ditentukan terjadi. Anda biasanya tidak perlu menerapkan method ini secara manual, karena kelas AppWidgetProvider secara otomatis menyaring semua siaran widget dan operasi delegasi ke metode yang sesuai. Event onEnabled Method lifecycle onEnabled disebut sebagai respons terhadap ACTION_APPWIDGET_ENABLED, yang disiarkan saat pengguna menambahkan contoh pertama widget Anda ke layar awal mereka. Jika pengguna membuat dua contoh widget Anda, maka onEnabled dipanggil untuk instance pertama, namun tidak untuk yang kedua. Metode siklus hidup ini adalah tempat Anda melakukan setup yang hanya perlu dilakukan sekali untuk semua contoh widget, seperti membuat database atau menyiapkan layanan. Perhatikan bahwa jika pengguna menghapus semua contoh widget Anda dari perangkat mereka dan kemudian membuat instance baru, maka ini digolongkan sebagai instance pertama, dan akibatnya method onEnabled akan dipanggil sekali lagi. Event onAppWidgetOptionsChanged Metode siklus hidup ini disebut sebagai tanggapan terhadap ACTION_APPWIDGET_OPTIONS_CHANGED, yang disiarkan saat contoh widget dibuat dan setiap kali widget diubah ukurannya. Anda dapat menggunakan metode ini untuk mengungkapkan atau menyembunyikan konten berdasarkan ukuran pengguna widget Anda, meskipun callback ini hanya didukung di Android dan yang lebih tinggi. Event onUpdate Metode siklus hidup onUpdate disebut setiap waktu Interval update telah berlalu. Pengguna melakukan tindakan yang memicu metode onUpdate. Pengguna menempatkan contoh widget baru di homescreen mereka kecuali widget Anda berisi Aktivitas konfigurasi, yang akan kita bahas di bagian dua. Metode siklus hidup onUpdate juga disebut sebagai respons terhadap ACTION_APPWIDGET_RESTORED, yang disiarkan setiap kali sebuah widget dipulihkan dari cadangan. Untuk sebagian besar proyek, metode onUpdate akan berisi sebagian besar kode penyedia widget, terutama karena ini juga tempat Anda mendaftarkan penangan event widget Anda. Event onDeleted Method onDeleted dipanggil setiap kali sebuah instance dari widget Anda dihapus dari App Widget Host, yang memicu siaran ACTION_APPWIDGET_DELETED sistem. Event onDisabled Metode ini disebut sebagai respons terhadap siaran ACTION_APPWIDGET_DISABLED, yang dikirim saat contoh terakhir widget Anda dihapus dari Host Widget Aplikasi. Misalnya, jika pengguna membuat tiga contoh widget Anda, metode onDisabled hanya akan dipanggil saat pengguna menghapus contoh ketiga dan terakhir dari homescreen mereka. Metode lifecycle onDisabled adalah di mana Anda harus membersihkan sumber daya yang Anda buat di onEnabled, jadi jika Anda membuat database di onEnabled, maka Anda akan menghapusnya di onDisabled. Event onRestored Metode onRestored dipanggil untuk menanggapi ACTION_APPWIDGET_RESTORED, yang disiarkan setiap kali sebuah instance dari widget aplikasi dipulihkan dari cadangan. Jika Anda ingin mempertahankan data yang persisten, Anda harus mengganti metode ini dan memetakan AppWidgetIds sebelumnya ke nilai yang baru, misalnya 1 public void onRestoredContext context, int[] oldWidgetIds, 2 int[] newWidgetIds { 3 } 4 } Jika Anda membuka file yang dibuat oleh Android Studio secara otomatis, Anda akan melihat bahwa aplikasi tersebut sudah berisi implementasi beberapa metode siklus hidup widget ini 1 import 2 import 3 import 4 import 5 6 //All widgets extend the AppWidgetProvider class// 7 8 public class NewAppWidget extends AppWidgetProvider { 9 10 static void updateAppWidgetContext context, AppWidgetManager appWidgetManager, 11 int appWidgetId { 12 13 CharSequence widgetText = 14 15 //Load the layout resource file into a RemoteViews object// 16 17 RemoteViews views = new RemoteViews 18 widgetText; 19 20 //Tell the AppWidgetManager about the updated RemoteViews object// 21 22 views; 23 } 24 25 //Define the onUpdate lifecycle method// 26 27 Override 28 public void onUpdateContext context, AppWidgetManager appWidgetManager, int[] appWidgetIds { 29 30 //appWidgetIds is an array of IDs that identifies every instance of your widget, so this 31 //particular onUpdate method will update all instances of our application widget// 32 33 for int appWidgetId appWidgetIds { 34 updateAppWidgetcontext, appWidgetManager, appWidgetId; 35 } 36 } 37 38 Override 39 40 //Define the onEnabled lifecycle method// 41 42 public void onEnabledContext context { 43 44 //To do// 45 } 46 47 Override 48 49 //Define the onDisabled method// 50 51 public void onDisabledContext context { 52 53 //To do// 54 55 } 56 } File Layout Widget File res/layout/ mendefinisikan layout widget kita, yang saat ini hanya latar belakang biru dengan kata Example yang tertulis di dalamnya. Perbedaan utama antara membuat tata letak untuk Aktivitas dan membuat tata letak untuk widget adalah tata letak widget harus didasarkan pada RemoteViews, karena ini memungkinkan Android menampilkan tata letak dalam proses di luar aplikasi Anda yaitu di homescreen pengguna. RemoteViews tidak mendukung setiap jenis layout atau View, jadi saat membangun layout widget, Anda terbatas pada tipe berikut AnalogClock Button Chromometer FrameLayout GridLayout ImageButton ImageView LinearLayout ProgressBar RelativeLayout TextView ViewStub Jika Anda membuat widget koleksi, Anda juga dapat menggunakan jenis berikut saat aplikasi Anda terpasang pada Android dan yang lebih tinggi AdapterViewFlipper GridView ListView StackView ViewFlipper Subclass dan keturunan dari Views dan kelas di atas tidak didukung. Klik dan Gesek Untuk memastikan pengguna tidak sengaja berinteraksi dengan widget saat mereka menavigasi di sekitar layar awal mereka, widget hanya akan merespons event OnClick. Pengecualiannya adalah saat pengguna menghapus widget dengan menyeretnya ke dalam tindakan Uninstall homescreen mereka, karena dalam situasi ini widget Anda akan merespons isyarat gesek vertikal. Namun, karena interaksi ini dikelola oleh sistem Android, Anda tidak perlu khawatir menerapkan dukungan tangkapan vertikal di aplikasi Anda. File Info Widget File res/xml/ juga dikenal sebagai file AppWidgetProviderInfo mendefinisikan sejumlah properti widget, termasuk banyak pengaturan yang Anda pilih di menu Configure Component Android Studio, seperti dimensi minimum widget Anda dan apakah itu dapat ditempatkan di layar lockscreen. File konfigurasi juga menentukan seberapa sering widget Anda meminta informasi baru dari layanan update App Widget. Memutuskan frekuensi ini mengharuskan Anda untuk mencapai keseimbangan yang rumit interval pembaruan yang lebih lama akan membantu menghemat baterai perangkat, namun menempatkan jarak Anda terlalu jauh dan widget Anda mungkin menampilkan informasi yang kedaluwarsa. Anda juga harus sadar bahwa sistem akan membangunkan perangkat tidur agar bisa mendapatkan informasi baru, jadi walaupun memperbarui widget Anda setiap setengah jam sekali mungkin tidak terdengar berlebihan, ini bisa mengakibatkan widget Anda membangunkan perangkat setiap 30 menit sekali, yaitu akan mempengaruhi konsumsi baterai Jika Anda membuka file proyek Anda, Anda akan melihat bahwa itu sudah mendefinisikan sejumlah properti widget, termasuk interval update. 1 2 Jika Anda memberi pilihan pada pengguna untuk memasang widget di layar lockscreen, ingatlah bahwa isi widget akan terlihat oleh siapa saja yang melirik layar lockscreen. Jika tata letak 'default' Anda berisi informasi pribadi atau berpotensi sensitif, maka Anda harus menyediakan tata letak alternatif agar widget Anda dapat digunakan saat ditempatkan di layar lockscreen. File res/values/ Widget tidak terlihat terbaik saat mereka saling menekan, atau saat mereka berada di tepi homescreen. Setiap kali widget Anda ditampilkan di Android atau lebih tinggi, sistem operasi Android secara otomatis memasukkan beberapa padding antara frame widget dan kotak pembatas. Jika aplikasi Anda bergetar pada perangkat yang menjalankan apa saja lebih awal dari Android widget Anda harus memasok padding ini sendiri. Saat Anda membuat widget menggunakan menu File > New > Widget > AppWidget, Android Studio menghasilkan dua file yang menjamin widget Anda selalu memiliki padding yang benar, terlepas dari versi Android yang terpasang di dalamnya. Anda akan menemukan kedua file ini di folder res proyek Anda res/values/ File ini mendefinisikan 8dpi padding yang perlu diberikan widget Anda kapan pun terpasang di level API 13 atau yang lebih baru. 1 8dp res/values-v14/ Karena Android dan yang lebih tinggi secara otomatis menerapkan padding ke setiap widget, padding yang disediakan widget Anda akan menjadi tambahan padding default ini. Untuk memastikan widget Anda sejajar dengan ikon aplikasi atau widget lain yang telah ditempatkan pengguna di layar awal mereka, file ini menentukan bahwa widget Anda seharusnya tidak memberikan margin tambahan untuk Android dan yang lebih tinggi 1 0dp Margin default ini membantu menyeimbangkan layar homescreen secara visual, jadi Anda harus menghindari modifikasi - Anda sama sekali tidak ingin widget Anda menjadi yang aneh. Tata letak widget Anda sudah mengacu pada nilai dimensi ini androidpadding="dimen/widget_margin" jadi hati-hati jangan sampai mengubah garis ini saat mengerjakan tata letak widget Anda. Meskipun file ini adalah cara termudah untuk memastikan widget Anda selalu memiliki padding yang benar, jika teknik ini tidak sesuai untuk proyek khusus Anda, maka salah satu alternatifnya adalah membuat beberapa latar belakang sembilan patch dengan margin yang berbeda untuk tingkat API 14 dan lebih tinggi, dan level API 13 dan yang lebih rendah. Anda dapat membuat sembilan patch menggunakan tool 9-patch Android Studio's Draw, atau dengan program edting grafis khusus seperti Adobe Photoshop. Proyek Manifest Dalam file proyek Anda, Anda perlu mendaftarkan widget Anda sebagai BroadcastReceiver dan menentukan penyedia widget dan file AppWidgetProviderInfo yang widget ini harus digunakan. Jika Anda membuka manifest, Anda akan melihat bahwa Android Studio telah menambahkan semua informasi ini untuk Anda. 1 //The widget’s AppWidgetProvider; in this instance that’s 2 3 4 5 6 //An intent filter for the action// 7 8 9 10 11 17 18 19 Widget Picker Resource File res/drawable/ adalah sumber drawable yang mewakili widget Anda di Penjelajah Widget. Untuk mendorong pengguna memilih widget Anda dari semua opsi yang tersedia, drawable yang diinginkan ini harus menampilkan widget Anda, dikonfigurasikan dengan benar pada layar utama dan menampilkan banyak konten yang bermanfaat. Saat membuat widget menggunakan menu File > New > Widget > AppWidget, Android Studio akan menghasilkan pratinjau drawable yang dapat dicadangkan secara otomatis Pada bagian kedua, saya akan menunjukkan kepada Anda bagaimana dengan cepat dan mudah mengganti stok drawable ini, dengan menggunakan tool bawaan Android Studio untuk menghasilkan gambar pratinjau Anda sendiri. Membangun Layout Anda Sekarang kita memiliki gambaran bagaimana file-file ini berkumpul untuk membuat widget aplikasi, mari kita memperluas fondasi ini dan membuat widget yang tidak lebih dari sekedar menampilkan kata Example pada latar belakang biru! Kami akan menambahkan fungsi berikut ke widget kami TextView yang menampilkan label ID Widget Aplikasi. TextView yang mengambil dan menampilkan ID untuk contoh widget tertentu ini. TextView yang merespons event onClick dengan meluncurkan browser default pengguna dan memuat URL. Sementara kita bisa menarik tiga TextViews dari palet Android Studio dan menjatuhkannya ke kanvas, jika widget Anda terlihat bagus maka pengguna akan cenderung menempatkannya di homescreen mereka, jadi mari kita membuat beberapa sumber yang akan memberi widget ekstra visual menarik. Buat Latar Belakang Widget Saya akan membuat persegi panjang dengan sudut membulat, latar belakang gradien, dan border, yang akan saya gunakan sebagai latar belakang widget saya Klik kontrol folder proyek drawable Anda dan pilih New > Drawable resource file. Beri nama file ini widget_background dan klik OK. Masukkan kode berikut 1 2 3 androidshape="rectangle"> 4 5 8 9 13 14 19 2. Buat Latar Belakang TextView Selanjutnya, buat bentuk untuk digunakan sebagai latar belakang TextViews kami Klik kontrol folder proyek drawable Anda dan pilih New > Drawable resource file. Nama file ini tvbackground lalu klik OK. Masukkan kode berikut 1 2 3 androidshape="rectangle" > 4 5 8 9 10 11 16 3. Buat Beberapa Styles Saya juga akan menggunakan styles berikut widget_text. Efek bold yang akan saya terapkan pada teks widget. widget_views. Berbagai margin dan padding yang akan saya terapkan pada TextViews saya. Buka file proyek Anda dan tambahkan yang berikut ini 1 2 8dp 3 12dp 4 12dp 5 12dp 6 bold 7 8 9 10 bold 11 4. Bangun Layout Anda! Sekarang semua sumber daya kita ada, kita bisa membuat layout widget kita. Buka file dan tambahkan yang berikut ini 1 7 8 14 15 21 22 28 29 30 37 Akhirnya, buka file dan tentukan sumber string yang kami rujuk dalam tata letak kami 1 2 Widget 3 App Widget ID\u0020 4 Tap to launch URL 5 Tab Desain Android Studio membantu Anda bekerja lebih efisien, dengan melihat pratinjau bagaimana tata letak Anda akan ditampilkan di berbagai perangkat. Beralih ke tab Desain jauh lebih mudah daripada menjalankan proyek Anda di perangkat Android setiap saat Anda membuat perubahan pada tata letak Anda. Frustratingly, Android Studio tidak menyediakan skin widget khusus, jadi secara default layout widget Anda diberikan seperti Activity biasa, yang tidak memberikan wawasan terbaik tentang bagaimana widget Anda akan terlihat di homescreen pengguna. Salah satu solusi potensial adalah membuat tata letak Anda menggunakan skin Android Wear Square, yang sebanding dengan ukuran dan bentuk widget aplikasi Android Pastikan tab Device Android Studio dipilih. Buka Device dropdown. Pilih 280 x 280, hdpi Square dari menu dropdown. Buat Widget Fungsionalitas Sekarang widget kita terlihat bagiannya, saatnya untuk memberikan beberapa fungsi Retrieve and display data. contoh widget diberikan sebuah ID saat ditambahkan ke Host Widget Aplikasi. ID ini tetap ada di seluruh siklus hidup widget dan akan benar-benar unik untuk contoh widget itu, bahkan jika pengguna menambahkan beberapa contoh widget yang sama ke homescreen mereka. Add an action. Kami akan membuat OnClickListener yang meluncurkan browser default pengguna dan memuat URL. Buka file penyedia widget dan hapus baris yang mengambil sumber string appwidget_text 1 static void updateAppWidgetContext context, AppWidgetManager appWidgetManager, 2 int appWidgetId { 3 4 //Delete the following line// 5 6 CharSequence widgetText = 7 RemoteViews views = new RemoteViews 8 widgetText; 9 10 views; 11 12 } Di blok updateAppWidget, sekarang kami perlu memperbarui placeholder dengan ID unik dari widget ini 1 RemoteViews views = new RemoteViews 2 Kita juga perlu membuat objek Intent yang berisi URL yang harus dimuat setiap kali pengguna berinteraksi dengan TextView ini. 1 Intent intent = new Intent 2 PendingIntent pendingIntent = 0, intent, 0; 3 4 //Attach an OnClickListener to our “launch_url” button, using setOnClickPendingIntent// 5 6 pendingIntent; Inilah file penyedia widget lengkap 1 import 2 import 3 import 4 import 5 import 6 import 7 import 8 9 public class NewAppWidget extends AppWidgetProvider { 10 11 static void updateAppWidgetContext context, 12 13 AppWidgetManager appWidgetManager, 14 15 int appWidgetId { 16 17 //Instantiate the RemoteViews object// 18 19 RemoteViews views = new RemoteViews 20 21 //Update your app’s text, using the setTextViewText method of the RemoteViews class// 22 23 24 25 //Register the OnClickListener// 26 27 Intent intent = new Intent 28 PendingIntent pendingIntent = 0, intent, 0; 29 pendingIntent; 30 views; 31 32 } 33 34 Override 35 public void onUpdateContext context, AppWidgetManager appWidgetManager, int[] appWidgetIds { 36 37 //Update all instances of this widget// 38 39 for int appWidgetId appWidgetIds { 40 updateAppWidgetcontext, appWidgetManager, appWidgetId; 41 } 42 } 43 } Menguji Widget Sudah waktunya memasang widget ini untuk di uji! Pasang proyek yang telah diperbarui di perangkat Android Anda. Untuk memastikan Anda melihat versi terbaru widget ini, hapus contoh widget yang ada dari homescreen Anda. Tekan sembarang bagian kosong dari homescreen, lalu pilih widget Anda dari Widget Picker. Reposisi dan ubah ukuran widget sesuai keinginan. Periksa apakah widget merespons peristiwa masukan pengguna, dengan memilih Ketuk untuk meluncurkan URL TextView. Widget aplikasi harus merespons dengan meluncurkan browser default Anda dan memuat URL. Jika Anda telah mengikuti tutorial ini, maka pada titik ini Anda memiliki widget yang berfungsi penuh yang menunjukkan banyak konsep inti widget aplikasi Android. Anda juga bisa mendownload proyek selesai dari repo GitHub kami. Kesimpulan Di postingan ini kami memeriksa semua file yang dibutuhkan untuk mengirimkan widget aplikasi Android, sebelum membangun widget yang mengambil dan menampilkan beberapa data unik dan merespons peristiwa masukan pengguna. Saat ini, ada satu fungsi utama yang masih hilang dari widget kami tidak pernah menampilkan informasi baru! Di postingan berikutnya, widget ini kita beri kemampuan untuk mengambil dan menampilkan data baru secara otomatis, berdasarkan jadwal yang telah ditetapkan, dan langsung merespon event input pengguna. Sementara itu, lihat beberapa postingan keren kami lainnya tentang pengembangan aplikasi Android di sini, di Envato Tuts+!
VocĂŞ quer criar um blog ou site em WordPress e deixá-lo mais atraente para o seu pĂşblico, mas nĂŁo sabe quais recursos utilizar? Widgets sĂŁo opções excelentes para deixar sua página mais dinâmica, direcionar seu pĂşblico para áreas especĂficas e atĂ© para seus perfis em redes sociais. O significado mais funcional para o termo widget, talvez seja a junção das palavras “window” e “gadget”, janela e dispositivo, respectivamente, termos em inglĂŞs, que se relacionam ao ambiente de um hardware. No entanto, a palavra foi usada pela primeira vez na peça Beggar on Horseback, escrita por George S. Kaufman e Marc Connelly em 1924, quando seria impossĂvel fazer uma alusĂŁo Ă tecnologia que temos disponĂvel hoje. No contexto da peça, widgets eram objetos inanimados, muito diferente do que entendemos como esse componente nos dias atuais. Neste artigo vocĂŞ encontrará O que Ă© Widget?Qual a diferença entre um Ăcone e um widget?Para que serve o Widget?Como baixar o Widget?Como o Widget funciona?Como colocar o Widget no seu site?Qual a importância de utilizar o Widget? Para iniciantes o widget Ă© uma forma fácil de adicionar elementos no site — citações, galerias, posts mais populares, sem precisar escrever cĂłdigos. Quer aprender a usar esse recurso? Continue a leitura! O que Ă© Widget? O widget pode ser considerado um componente de acessibilidade, pois simplifica o acesso do usuários aos programas e sistemas armazenados em seus computadores, tablets, smartphones e outros dispositivos. Tem diversas funcionalidades, como botões, Ăcones e barras de rolagem e pode ser facilmente criado sem que o usuário saiba como incorporar cĂłdigo ou programa. Sua interface gráfica, GUI Graphical User Interface, permite adicionar ao sistema operacional uma tarefa predeterminada, que opera em tempo real, como relĂłgio, contagem regressiva de eventos, clima diário, atualização de redes sociais, contador de visitas no site etc. Os widgets sĂŁo classificados, geralmente, em dois tipos baixo nĂvel utilizados para a criação do sistema operacional, fazem parte do nĂşcleo do sistema;alto nĂvel referem-se aos objetos finais e sĂŁo facilmente encontrados em bibliotecas de desenvolvimento toolkit ou em frameworks. Alguns widgets recebem dados do usuário para criar algum tipo de registro — entradas de texto, caixas e menus de seleção e outros componentes capazes de coletar informações e enumerar as possibilidades a serem apresentadas ao usuário. Um widget da web Ă© um aplicativo independente, que pode ser incorporado a um site — blogs, perfis em redes sociais e páginas da web, em áreas especĂficas para mensurar o desempenho do site, SEO Search Engine Optimization e atĂ© campanhas de link reverso. Qual a diferença entre um Ăcone e um widget? Ambos direcionam o usuário para outro ambiente, mas existe uma diferença básica entre um widget e um Ăcone independentemente do dispositivo em que estĂŁo incorporados, seja um computador ou smartphone, o Ăcone serve apenas como um atalho para aquele programa que o originou, enquanto que o widget fornece na sua interface os dados gerados pelo aplicativo em que ele foi associado. O widget Handcent, por exemplo, muda quando uma mensagem SMS Ă© recebida, enquanto o Ăcone do Handcent permanece o mesmo, sendo apenas atalhos estáticos que servem para iniciar aplicativos. Assim, a melhor maneira de definir essa diferença Ă© que um widget Ă© mais sofisticado que o Ăcone, muitas vezes sĂŁo animados, tĂŞm controle de toque, visualizador de informações e a capacidade de informar sobre o status do aplicativo que ele representa, alĂ©m de permitir a sua inicialização, o widget de mĂşsica, por exemplo, que exibe a arte do álbum e tem um botĂŁo de pausa na reprodução. Para que serve um widget? Vamos especificar agora a usabilidade dos widgets. No WordPress, por exemplo, eles permitem que vocĂŞ adicione diferentes funcionalidades na barra lateral sem precisar saber escrever cĂłdigos. Essa facilidade favorece proprietários de página iniciantes, que podem incorporar elementos dinâmicos, como quantidade de curtidas ou seguidores nas redes sociais, exibir citações atualizadas em tempo real ou direcionar o usuário para a seleção de posts mais populares ou mais recentes. Dessa forma, widgets tambĂ©m podem ser usados para o direcionamento dos usuários da sua página. Eles funcionam como um canal de comunicação para conectar o site a qualquer outro ambiente na web, fanpage, redes sociais ou perfil no MySpace, por exemplo. Como sua aplicação Ă© opcional, os usuários decidem quais devem integrar o ambiente, para garantir a interação do seu pĂşblico com outras páginas, durante sua experiĂŞncia. Dessa forma, um widget pode ser associado a algumas estratĂ©gias de marketing permitir uma comunicação mais fluida com o pĂşblico;oferecer acesso imediato a informações em tempo real;possibilitar o acesso mais simples aos serviços;obter informações importantes no primeiro acesso;ser usado para mensagens publicitárias se o widget for interessante e Ăştil, vocĂŞ poderá obter publicidade gratuita em centenas de sites. O uso de widgets tem se popularizado entre administradores de página, pois os usuários podem adicionar aplicativos independentes a seus sites, blogs, perfis e páginas de comunidade em redes sociais, o que aumenta o engajamento dos visitantes e a atratividade do site. Mas a aplicabilidade do componente deve ser limitada, para evitar a sobrecarga do site, que seja um fator condicionante para o atraso no carregamento da página e, consequentemente, desencorajar os visitantes pela demora no acesso. AlĂ©m disso, os scripts externos podem representar um risco de segurança, fator muito relevante nos dias atuais. Como adicionar widgets no WordPress? Existem vários mĂ©todos para adicionar widgets ao seu site em WordPress de forma fácil drag and drop e incorporação por listas, quando os widgets estĂŁo disponĂveis pelo CMS ou por meio de cĂłdigos de acesso gerados com um plug-in, ao desativar o editor visual clássico para adicionar o cĂłdigo diretamente Ă página, com blocos HTML brutos, por meio do Gutenberg, entre outros. Veja a seguir um pouco mais sobre cada mĂ©todo. Opção 1 use a funcionalidade drag and drop Essa Ă© a forma mais rápida de adicionar um widget ao seu CMS. Basta arrastá-los e soltá-los na barra lateral Opção 2 incorpore o widget por lista Acesse a lista de widgets disponĂveis e no tĂtulo da widget clique no componente desejado. O WordPress mostrará em qual parte da barra lateral ele poderá ser adicionado. Selecione o local e clique no botĂŁo “adicionar widget” para incluĂ-lo na área especificada. Opção 3 use o plugin no WordPress para adicionar widgets Nesse mĂ©todo vocĂŞ nĂŁo precisará desativar o editor visual clássico para adicionar o widget no site ou editar a página em que o widget está localizado. AlĂ©m disso, os cĂłdigos de acesso serĂŁo salvos no WordPress para uso futuro. identifique o cĂłdigo do widget. Se for necessário, torne-o mais curto, por meio de plugins especĂficos, como o MindBody Widget;vá para o painel do WordPress e localize “MB Widgets”;clique em “cĂłdigos de acesso do widget”;clique em “adicionar novo widget”;adicione um tĂtulo de widget como “Agenda” ou “relĂłgio”;cole seu cĂłdigo do widget na caixa de texto “CĂłdigo do widget”.clique em “criar”;para instalar o widget, acesse a página desejada do WordPress;clique no botĂŁo Mindbody acima da caixa de texto;escolha o widget da lista;atualize sua página. Alguns temas do WordPress, como o Avada, usam o Page Builder em vez do editor padrĂŁo do WordPress. Se o seu tema for feito a partir de um Construtor de Páginas, vocĂŞ poderá adicionar o cĂłdigo de acesso a partir de um Bloco de Texto ou Caixa de Texto, como alternativa de instalação. Opção 4 inclua widgets por meio da desabilitação do editor visual clássico O editor visual clássico deve ser desativado sempre que vocĂŞ adicionar ou editar os widgets no seu site. Observe que a desativação dessa configuração restringirá sua capacidade de editar outras páginas, por isso recomendamos reativar o editor visual quando terminar de adicionar o cĂłdigo do widget. faça login no seu site WordPress;clique no seu nome, no canto superior direito;clique em “editar meu perfil”;verifique se a caixa de seleção “desativar o editor visual ao escrever” está marcada; clique em “Atualizar perfil” na parte inferior;vá para “Páginas” e selecione onde vocĂŞ deseja colocar seu widget;copie seu cĂłdigo do widget do Branded Web Manager e cole-o na área de conteĂşdo; atualize a página;retorne ao seu perfil e reative o editor visual se precisar fazer alterações em outras páginas. Opção 5 use o bloco HTML bruto Nessa opção vocĂŞ usa o bloco “Raw HTML” para instalar um widget. Opção 6 adicione widgets no WordPress por meio do editor Gutenberg Esse editor facilita a incorporação de widgets em sites WordPress. Difere-se do editor visual clássico pela localização dos plugins no editor visual clássico, os plugins de widget ficam localizados na parte superior do editor, enquanto no Gutenberg, eles localizam-se no menu recolhĂvel. Para instalar o editor adicione o novo plugin no seu painel do WP e pesquise por Gutenberg. Instale-o e ative-o. O layout no Gutenberg Ă© construĂdo a partir de blocos, ou seja, nĂŁo necessita de linhas e colunas mas sim a inserção dos elementos na tela que podem ser ajustadas conforme o usuário desejar. O acesso aos Widgets no Gutenberg fica no Ăcone + no canto superior esquerdo do editor, conforme mostrado abaixo VocĂŞ pode escolher quais widgets inserir no meio da sua postagem — lista de postagens, shortcodes, lista de categorias etc. ou no lugar em que achar melhor. Para adicionar widgets por meio do bloco HTML personalizado localize o widget que vocĂŞ deseja adicionar ao seu site WordPress e clique nos trĂŞs pontos Ă direita do widget para abrir o menu;clique em “adicionar”;copie o cĂłdigo do widget; faça login no seu site para “Páginas” e selecione onde vocĂŞ deseja colocar seu widget;clique no Ăcone de adição no canto superior esquerdo do editor; no menu, selecione Bloco HTML personalizado vocĂŞ tambĂ©m pode procurar o bloco HTML personalizado usando a barra de pesquisa na parte superior do menu; cole seu cĂłdigo do widget no bloco HTML personalizado;faça alterações adicionais em sua página;clique em “publicar” ou “atualizar” para salvar suas alterações. Como remover um widget do WordPress? Remover um widget no WordPress Ă© tĂŁo simples quanto adicioná-lo acesse a página “aparĂŞncia”, depois em “widget”;identifique o componente que vocĂŞ deseja remover da sua barra lateral;clique no tĂtulo do widget para expandi-lo; Embaixo das configurações do widget, vocĂŞ achará o link para deletá-lo. Ao deletar, ele será retirado da barra lateral do seu painel e tambĂ©m da seção de configurações, tĂtulo ou outras opções que vocĂŞ tenha selecionado. Se vocĂŞ desejar remover o widget sem perder as configurações, entĂŁo basta arrastá-lo e soltá-lo na área especĂfica para widgets desativados. Dessa forma, vocĂŞ poderá retomá-lo para a lista sempre que achar pertinente Widgets sĂŁo recursos imprescindĂveis para tornar seu site ou blog mais dinâmicos. Por meio de um consumo mĂnimo de memĂłria, eles garantem ao usuário visualização em tempo real de informações predeterminadas pelo sistema em que estĂŁo incorporados, seja esse um aplicativo ou um programa de computador. AlĂ©m disso, melhoram a experiĂŞncia do pĂşblico durante o acesso a página, basta escolhĂŞ-los com critĂ©rio para nĂŁo prejudicar o tempo de carregamento e, consequentemente, a velocidade de acesso do usuário ao site. Quer conhecer outros recursos que podem personalizar sua página pessoal e torná-la ainda mais funcional para a sua audiĂŞncia? EntĂŁo, descubra alguns plugins para WordPress no artigo que selecionamos para vocĂŞ!
cara membuat widget bergerak