Neste tutorial ensinarei a vocês como criar um AlertDialog no Flutter que funciona com a animação Hero
. Acho que todos nós já nos frustramos com a tentativa de usar o Hero
em dialogs, bottomsheet e nunca deram certo né?
Calma, vem comigo que lhe mostro em exemplo bem legal.
Vamos ao código!
Na sua página principal coloque o
Hero
com flagstar_alert_dialog
envolvendo oWidget
que deseja animar, como no exemplo abaixo, onde aplicamos noIcons.star
.
Sobre o placeholderBuilder, pode notar na imagem acima que aplicamos umWidget
comoplaceholder
; utilizamos esta função quando queremos exibir umWidget
personalizado durante a animação.Criei um arquivo chamado
alert_dialog_widget
, onde retornaremos umAlertDialog
e um dos seusWidgets
internos receberá a animaçãoHero
, utilizamos a mesmoflag
na página principal.
Agora vamos à navegação: para que o
Hero
funcione não podemos utilizar oshowDialog
do Flutter, é preciso que chamemos o alert_dialog_widget usando a navegação do Flutter; e para isso, utilizar-nos-emos doPageRouteBuilder
. Para facilitar, extrairemos a navegação para umaextension
doBuildContext
e criaremos uma função chamadaopenDialog
.
Volte à sua página principal. No botão que escolheu para chamar a navegação, basta adicionar o código abaixo:
Pronto! Agora podemos abrir páginas/dialogs
no Flutter que suportam a animação Hero
.
O meu Git.
Top comments (1)
muito bommm