Olá, Pedro!
Entendo que você prefere usar o "onEnd" do AnimatedOpacity para direcionar para outra página. No entanto, é importante notar que o "onEnd" é chamado quando a animação é concluída.
No caso do código que você compartilhou, a animação está relacionada à alteração da opacidade da imagem. Portanto, o "onEnd" será acionado quando a animação de opacidade estiver concluída.
No exemplo da aula, a navegação para a próxima tela é feita em um momento específico, após a animação de opacidade e um tempo adicional de 300 milissegundos. Isso é feito para garantir que a imagem esteja totalmente visível por um curto período antes de a navegação ocorrer.
Se você usar o "onEnd" para a navegação, a navegação ocorrerá imediatamente após a animação de opacidade, sem o tempo adicional. Isso pode fazer com que a navegação pareça um pouco brusca, pois a imagem estará apenas começando a se tornar totalmente visível quando a navegação ocorrer.
No entanto, se você preferir usar o "onEnd", o código ficaria assim:
AnimatedOpacity(
curve: Curves.easeInOut,
opacity: imageOpacity,
duration: const Duration(milliseconds: 1500),
onEnd: () {
Navigator.pushReplacementNamed(context, '/auth/login');
},
child: Image.asset('assets/images/logo_splash_titulo.png'),
)
Isso irá navegar para a rota '/auth/login' quando a animação de opacidade estiver concluída.
Espero ter ajudado. Qualquer dúvida manda aqui. Bons estudos.