Bacajuga: Cara Membuat Rating Bintang Di Blog Masuk atau login ke blog kalian klik Rancangan Design kemudian klik Elemen laman page Elements Lalu klik tambah gadget add gadget setelah di klik akan muncul banyak pilihan. Masuk Akun Blogger Sobat 2. Sebetulnya widget efek animasi salju berjatuhan ini sudah diterapkan oleh blogger jaman dulu. UntukContoh Silahkan Lihat Widget di Blog ini. Nah Sekarang Tinggal caranya, untuk menggerakannya anda tinggal rubah saja script-nya, 1. Masuk ke Blog anda, seperti biasa 2. Masuk ke tab Rancangan 3. Add Widget-> HTML -> ada 2 jenis kode, tinggal pilih - untuk bolak balik a. Kanan-Kiri CaraMembuat Gambar Bergerak Dengan Android Cocok Untuk Gambar Tutorial Dan Stiker Whatsapp Tipe Gambar gif Dimensi Gambar 220 x 220 px Besaran Gambar 24.14 KiB Lisensi Gambar Gambar bebas dan gratis untuk digunakan ulang. Tidak diperlukan atribusi dan retribusi. Bisa digunakan secara komersil dan non-komersil. Karya ini dilisensikan di bawah CaraMembuat Recent Post Bergerak Ke Bawah yah itulah Tips Dan Trik Tutorial Blogspot tentang Membuat Recent Post Bergerak Ke Bawah or hanya keyword google Cara Membuat Recent Post + Thumbnail dengan Jquery Recent Post adalah widget Blog yang akan menampilkan beberapa artikel / postingan terakhir blog. Adapun jumlah portingan yang di tampilkan bisa diatur sesuai keinginan kita dengan mengacak Penggunadapat membuat layar beranda dengan cara apa pun yang dirasa nyaman. Widget di iOS 14 telah menerima pembaruan yang signifikan. Bersamaan dengan itu, Agan juga dapat mengubah warna widget di iPhone dan iPad Agan yang berjalan di iOS 14 atau iPadOS 14 terbaru. Dalam artikel ini, saya akan menjelaskan bagaimana Agan dapat mengubah widget Membuat Animasi Bergerak Secara Berurutan bisa dilakukan dengan menggunakan PowerPoint. Cara Membuat Animasi Bergerak di PowerPoint sangatlah mudah karna semua Pengaturan Customnya sudah di Sediakan Oleh Aplikasi. Dalam Pengetahuan dan Penggunaan Dasar Animasi PowerPoint, Penempatan serta penggunaan animasi secara berurutan sangatlah penting untuk dipelajari. Caramembuat widget breaking news di blog, memasang widget newsticker berjalan di blog, membuat headline breaking news dengan thumbnail dan efek slide halus pada blogger. Cara Manual. Cara Manual - Kumpulan tutorial blogger lengkap untuk pemula, cara membuat blog keren, cara mendesain blog agar menarik, tips dan trik blogspot. 3Idni. Saat ini banyak yang menanyakan bagaimana cara menambahkan widget di Windows 10. Widget sendiri adalah sebuah fitur yang ada di Windows, berupa jendela kecil yang memuat info dinamis di layar desktop Windows. Pada layar desktop tersebut, ada papan khusus yang digunakan untuk menambahkan widget. Namun, pada Windows 10 fitur widget tersebut disembunyikan oleh sistem. Maka, pengguna harus mengaktifkannya secara manual agar dapat digunakan. Cara Menambahkan Widget di Windows 101. Menambahkan Widget Melalui Rainmeter2. Menambahkan Widget Melalui Microsoft Store3. Menambahkan Widget Melalui Gadget Pack4. Menambahkan Widget Melalui Aplikasi Widget Lainnya Cara menambahkan widget di Windows 10 tidak begitu sulit. Bagi yang belum pernah, mungkin membutuhkan panduan untuk melakukannya. Namun, sebelum memasuki cara menambahkan widget, pastikan terlebih dahulu versi OS Windows sudah update dan memiliki koneksi internet. Ada beberapa aplikasi yang bisa membantu untuk menampilkan widget di Windows 10. Jika Anda penasaran, simak panduan menampilkan widget Windows di bawah ini 1. Menambahkan Widget Melalui Rainmeter Cara menambahkan widget di Windows 10 yang pertama, yaitu melalui Rainmeter. Rainmeter cukup populer dan banyak digunakan mulai dari versi Windows 7 rilis. Aplikasi ini menyediakan varian widget yang bisa dipilih sesuai keinginan. Beberapa widget yang dapat ditampilkan dari aplikasi ini, yaitu Network Meter, CPU Meter, Kalender, Disk Usage, Monitor RAM dan lainnya. Pengguna juga bisa melakukan kustomisasi tampilan widget sendiri agar terlihat lebih menarik. Agar bisa segera menampilkan widget di Windows 10, silahkan ikuti langkah-langkahnya di bawah ini Pertama kali, download aplikasi itu, install sudah selesai install, langsung saja buka aplikasi Rainmeter terbuka, maka widget bawaan aplikasi akan ditampilkan secara otomatis pada layar Windows 10. Proses penambahan widget selesai. 2. Menambahkan Widget Melalui Microsoft Store Cara menampilkan widget di Windows 10 yang kedua, yaitu melalui Microsoft Store. Microsoft store menyediakan banyak widget yang bisa digunakan, di antaranya jam, Note, cuaca, suhu, kalender, dan lainnya. Berikut ini cara menampilkan widget melalui Microsoft Store Pertama-tama, buka kolom search itu, ketik Microsoft Store dan Anda akan dibawa ke halaman Microsoft Store, silakan cari widget yang ingin digunakan melalui kolom mencari widget Clock Desktop, maka akan muncul beberapa pilihan klik widget tersebut, kemudian pilih install. Tunggulah beberapa saat sampai proses instalasi selesai dan terpasang pada tampilan awal desktop. Untuk widget yang dipilih lewat Windows Store, ada beberapa yang memerlukan pengaturan terlebih dahulu sebelum ditampilkan pada halaman desktop. Maka, agar tampilan widget tidak mengecewakan, pastikan Anda sudah melakukannya. 3. Menambahkan Widget Melalui Gadget Pack Untuk menambahkan widget di Windows 10, bisa melalui aplikasi Gadget Pack. Aplikasi ini dapat digunakan untuk OS Windows 8 ke atas. Widget yang tersedia pada aplikasi ini sangat beragam dan gratis. Nah, jika ingin menggunakannya, silakan ikuti cara menampilkan widget di Windows 10 melalui Gadget Pack Pertama-tama, download aplikasi Gadget Pack, lalu proses download dan install selesai, silahkan buka aplikasi dan halaman awal, akan disajikan beberapa widget unggulan. Pilihlah daftar widget yang akan ditampilkan di layar dengan menekan tombol +, lalu drag ke layar desktop selesai. 4. Menambahkan Widget Melalui Aplikasi Widget Lainnya Selain dari cara menambahkan widget di Windows 10 di atas, ada banyak pilihan aplikasi lain yang tampilannya menyerupai widget. Adapun, aplikasi-aplikasi tersebut biasanya disediakan oleh platform. Namun, setiap aplikasi menyediakan tampilan widget yang berbeda-beda. Ada widget yang menampilkan jam dan kalender dengan tampilan yang unik. Ada pula yang menampilkan suhu terkini dan informasi penting lain yang dibutuhkan. Nah, berikut ini beberapa aplikasi lain untuk menampilkan widget di Windows 10 Windows Desktop GadgetsWidget HDWindowBlindWinaero Tweaker Selain dari beberapa aplikasi tersebut, masih banyak aplikasi sejenis lainnya. Cara menggunakannya sama seperti yang sudah dijelaskan di atas. Pertama kali jangan lupa untuk melakukan download dan install aplikasinya. Dari beberapa rekomendasi aplikasi penambah widget windows 10 di atas, silahkan pilih dan coba salah satu sesuai dengan keinginan. Pada setiap aplikasi, tentunya memiliki kekurangan dan kelebihannya masing-masing. Dengan mengaktifkan widget pada Windows, pengguna akan merasakan manfaat, seperti untuk mempercantik tampilan dan mengaktifkan fungsi tertentu. Hal penting yang perlu diingat sebelum memasang widget, sebaiknya pilih widget yang memiliki manfaat, tidak hanya sekedar memberikan tampilan yang menarik. Dengan widget tersebut, pengguna semestinya bisa memperoleh informasi penting. Keempat cara menampilkan widget di Windows yang dipaparkan di atas dijamin mudah dan simpel untuk dilakukan. Dengan menggunakan tampilan widget, pasti Windows akan tampak lebih keren dan menarik. Selain itu juga bermanfaat untuk mengetahui beberapa informasi, seperti tanggal, jam, cuaca dan lainnya. Memang beberapa di antaranya tidak menyajikan langkah-langkah penggunaan, hanya rekomendasi aplikasi. Meskipun begitu, pengguna dijamin tidak akan kesulitan ketika menerapkannya, karena caranya tidak jauh berbeda dengan aplikasi lain sejenisnya. Cara menambahkan widget di Windows 10 tidak begitu sulit, bukan? Melalui aplikasi-aplikasi pilihan di atas, siapapun bisa menampilkan widget yang keren dan menarik di Windows. Bahkan bagi yang belum pernah melakukannya pun akan mudah menerapkan cara-cara di atas. Selamat mencoba dan mendapatkan tampilan widget yang menawan dan pastinya informatif. 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ê! 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. Menerapkan Animasi pada project Flutter Hai rekan-rekan developer! Sebelumnya saya sudah berbagi tentang bagaimana cara menerapkan sebuah multitype view pada RecyclerView. Nah, kali ini saya ingin berbagi sedikit tentang bagaimana cara menerapkan animasi pada project Flutter. 💻 Mulai Belajar Pemrograman Belajar pemrograman di Dicoding Academy dan mulai perjalanan Anda sebagai developer profesional. Daftar Sekarang Tapi sebelum lanjut, kenapa kita perlu menerapkan sebuah animasi di aplikasi yang sedang kita kembangkan? Dengan menerapkan animasi, kita bisa menambah pengalaman pengguna ketika menggunakan aplikasi kita. Sebaliknya, jika kita tidak menerapkan sebuah animasi, aplikasi akan terlihat kaku. Alhasil, pengguna pun cepat bosan dan bisa memutuskan untuk uninstall aplikasi tersebut dari peranti mereka. Pada umumnya, animasi secara default terdapat pada transisi perpindahan halaman di dalam aplikasi. Animasinya pun beragam tergantung framework di setiap platform device. Menariknya, kita bisa mengubah dan mengganti animasi tersebut dengan animasi yang kita inginkan. Animasi Pada Project Flutter Hero Animation Untuk aplikasi yang dikembangkan dengan Flutter, terdapat built-in animasi yang bisa langsung kita gunakan untuk mempercantik dan membantu kita untuk menambah pengalaman pengguna. Yaitu, Hero Animation. Animasi yang digunakan untuk menampilkan transisi sebuah widget di dalam UI ketika berpindah halaman. Sebagai contoh, misal kita mempunyai aplikasi seperti berikut Aplikasi di atas terlihat kaku ketika berpindah halaman, namun ketika kita menerapkan hero animation, kita bisa menambahkan animasi pada widget ketika berpindah halaman seakan-akan widget tersebut dipindah dari satu halaman ke halaman lainnya seperti berikut Tidak sampai di situ, kita juga bisa mengubah bentuk dari widget tersebut saat ditampilkan pada halaman tujuan Struktur dari Hero Animation Pada dasarnya, Hero Animation adalah implementasi dari 2 dua widget Hero dengan struktur implementasinya sebagai berikut Hero widget sebagai start point. Widget hero yang digunakan untuk merepresentasikan grafis dan ditandai dengan sebuah tag yang ditampilkan pada source route. Hero widget sebagai endpoint, atau bisa disebut sebagai hero destination. Widget ini sama seperti widget yang ditampilkan pada source route, yaitu widget yang merepresentasikan grafis dan memiliki tag yang berada pada destination route. Pembuatan route yang berisi tujuan akhir dari hero animation. Route ini berfungsi untuk menentukan widget yang ada di akhir animasi. Menjalankan animasi dengan memanggil destination route yang berada di dalam stack navigator. Navigator akan melakukan operasi push dan pop untuk menjalankan hero animation dengan melakukan komparasi antara tag widget yang ada di source dan destination route. Flutter akan melakukan kalkulasi nilai batasan hero widget ukuran interpolasi dan posisi dari start point ke end point dan akan menjalankan animasi di overlay bagian yang berada di antara source dan destination route. Menerapkan Hero Animation Tanpa berlama-lama, mari kita praktekkan bagaimana menerapkan hero animation. Langsung saja buat project baru Flutter, bisa menggunakan VSCode atau Android Studio. Jika project baru sudah selesai dibuat, buka berkas kemudian modifikasi kode yang berada di dalamnya menjadi seperti berikut 1234567891011121314151617181920212223242526 import 'packageflutter/ main => runAppMyApp;class MyApp extends StatelessWidget { override Widget buildBuildContext context { return MaterialApp title 'Flutter Demo', theme ThemeData primarySwatch , home HomeScreen, ; }}class HomeScreen extends StatelessWidget { override Widget buildBuildContext context { return Scaffold appBar AppBar title Text"Hero Animation Sample", , }} Sebelum lanjut menambahkan widget Hero, mari kita tambahkan terlebih dahulu asset gambar yang akan ditampilkan pada widget Image. Silakan unduh assetnya di tautan ini. Namun teman-teman juga bisa menggunakan asset sed. Lanjut, buatlah folder baru dengan nama asset kemudian tempat asset gambar yang sudah diunduh di dalamnya. Kemudian daftarkan asset gambar tersebut ke dalam berkas seperti berikut flutter The following line ensures that the Material Icons font is included with your application, so that you can use the icons in the material Icons class. uses-material-design true To add assets to your application, add an assets section, like this assets - asset/ Pastikan kembali indentasi tiap asset agar tidak terjadi error ketika melakukan sync packages. Setelah selesai, mari kita buka kembali berkas Kemudian lengkapi kode pada kelas HomeScreen dengan widget Hero dan beberapa widget lainnya seperti berikut 123456789101112131415161718192021222324252627282930313233343536 class HomeScreen extends StatelessWidget { override Widget buildBuildContext context { return Scaffold appBar AppBar title Text"Hero Animation Sample", , body Center child Column mainAxisAlignment children [ Hero tag "logo", child "asset/ width 150, height 150, , , Padding padding const child RaisedButton child Text"To another screen", onPressed { MaterialPageRoutebuilder _ { return SecondScreen; }; }, , ], , , ; }} Di dalam widget Hero di atas terdapat sebuah widget Image yang menampilkan asset gambar yang sudah kita tambahkan sebelumnya. Selain itu, pada kelas HomeScreen di atas terdapat sebuah widget Button yang digunakan untuk menampilkan halaman baru menggunakan Navigator. Lanjut, buat lagi kelas baru di dalam bekas dengan nama SecondScreen. Buka, kemudian lengkapi kode di dalamnya seperti berikut 1234567891011121314151617181920 class AnotherScreen extends StatelessWidget { override Widget buildBuildContext context { return Scaffold appBar AppBar title Text"Another Screen", , body Center child Hero tag "logo", child "asset/ width 75, height 75, , , , ; }} Jika sudah, secara keseluruhan berkas kurang lebih akan seperti berikut 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374 import 'packageflutter/ main => runAppMyApp;class MyApp extends StatelessWidget { override Widget buildBuildContext context { return MaterialApp title 'Flutter Demo', theme ThemeData primarySwatch , home HomeScreen, ; }}class HomeScreen extends StatelessWidget { override Widget buildBuildContext context { return Scaffold appBar AppBar title Text"Hero Animation Sample", , body Center child Column mainAxisAlignment children [ Hero tag "logo", child "asset/ width 150, height 150, , , Padding padding const child RaisedButton child Text"To another screen", onPressed { MaterialPageRoutebuilder _ { return SecondScreen; }; }, , ], , , ; }}class SecondScreen extends StatelessWidget { override Widget buildBuildContext context { return Scaffold appBar AppBar title Text"Another Screen", , body Center child Hero tag "logo", child "asset/ width 75, height 75, , , , ; }} Sampai di sini kita sudah selesai menerapkan Hero Animation. Jika dijalankan, teman-teman akan melihat hasil yang seperti dicontohkan di awal. Nah, yang perlu diperhatikan dalam menerapkan Hero Animation adalah tag hero. Ketika terjadi eror seperti animasi yang tidak dapat berjalan dengan baik, pastikan kembali tag yang digunakan di widget yang berada pada source dan destination route adalah sama. Selain itu, di dalam 1 satu source route tidak boleh 2 dua atau lebih widget memiliki tag yang seperti ini akan kita temukan ketika ingin menerapkan Hero Animation pada widget ListView. Kesimpulan Seperti yang sudah disebutkan di awal, menerapkan animasi merupakan salah satu cara yang dapat kita gunakan untuk menambah pengalaman pengguna. Dengan bertambahnya pengalaman pengguna, jumlah instal dari aplikasi kita pun akan ikut bertambah. Tentu ini akan sangat menguntungkan. Sebenarnya masih banyak lagi animasi-animasi yang bisa kita terapkan terutama pada project Flutter. Tinggal bagaimana cara kita menerapkan dan menyesuaikan dengan aplikasi yang sedang dikembangkan. Mungkin cukup sampai di sini tutorial kali ini. Jika ada yang mau ditanyakan, silakan tulis di kolom komentar di bawah ya, dan untuk contoh project yang sudah kita coba buat, bisa dilihat di laman Github ini. Menerapkan Animasi pada project Flutter Salam! Ingin baca tulisan saya lainnya? Simak 1. 2. Ingin juga dapat info update tentang tutorial di blog kami via sosial media? bisa ! Follow kami ya

cara membuat widget bergerak