Closed vnschneider closed 1 year ago
Você pode usar o WillPopScope
.
return WillPopScope(
onWillPop: () async {
ScaffoldMessenger.of(context).showSnackBar(const SnackBar(
content: Text('Você não pode retornar para a tela anterior!')));
return false;
},
child: Scaffold(),
);
No método onWillPop: () async {}
, você pode definir qualquer ação, o que importa é retornar false
.
Uma idéia de uso seria uma mensagem do sistema com algo como "aperte voltar mais uma vez para sair da aplicação"
Ao abrir a aplicação de novo, a pilha de widgets vai chamar por ChekLogin
, que joga ou para LoginPage
ou para HomePage
, que também pode ser posto em um WillPopScope
para evitar que volte para essa verificação novamente, travando a aplicação.
Lembrando, o mesmo não se faz necessário com as telas de navegação da NavBar
, pois essa navegação está em um BottomNavigationBar
, que não estrutura a navegação em uma pilha.
Afim de manter a resposta para um erro, adicionei o mesmo AlertDialog da tela NewUser na tela de Login. Isso me fez perceber que o app está fazendo o push da nova rota mantendo o ultimo estado salvo, assim o usuário pode voltar para a tela anterior e isso está quebrando a aplicação. Alguma ideia para solucionar este erro? Eliminar o back button da appbar não é o suficiente já que o usuário pode usar os botões de navegação do aparelho para realizar essa ação.