Eu estou fazendo um app de vendas, onde eu uso um drawer para movimentar entre as telas usando os comandos do Navigator, e encontrei a seguinte situação
1 - Ao abrir o app ele entra na tela principal que onde é feito a a venda
2 - eu seleciono dois produtos para vender
3 - logo em seguida eu saio da tela de venda que tem os dois produtos e vou para tela de clientes
4 - agora eu preciso voltar para tela de de vendas, e os dois produtos que já haviam sidos selecionados ainda devem estar lá
Certo, nessa parte 4, usando a tecla para voltar no celular ele volta uma tela e vai para esse tela de vendas(com os dois produtos la), mas se eu vou no drawer e seleciona a opção de ir para a tela de vendas, como faço buscar essa tela no começo da pilha em vez de criar uma nova tela de vendas(que vem vazia sem os dois produtos). Quero isso pois, se é somente uma tela na cima na pilha, não tem problema, o usuário aperta para voltar e pronto, mas se tem por exemplo 5 ou 6 telas em cima, é um desgaste grande para o usuário ter que voltar tudo, apertando varias vezes no voltar, para não perde o que já foi feita na tela de venda. Existe algum comando do navigator que faça isso ? já procurei algumas coisas, mas não encontrei algo que me ajuda-se.
Código do drawer
@override
Widget build(BuildContext context) {
Size size = MediaQuery.of(context).size;
return MultiLevelDrawer(
backgroundColor: Color(0xfff0f3f4),
rippleColor: Colors.white,
subMenuBackgroundColor: Color(0xfff0f3f4),
divisionColor: Colors.grey,
header: Container(
height: size.height * 0.25,
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: <Widget>[
Image.asset(
"Imagens/ACMIL_CIRCULAR.png",
width: 100,
height: 100,
),
SizedBox(
height: 10,
),
Text("Usuario : Iury")
],
)),
),
children: [
MLMenuItem(
leading: Icon(Icons.person),
trailing: Icon(Icons.arrow_right),
content: Text(
"Cadastro",
),
subMenuItems: [
MLSubmenu(
onClick: () {
Navigator.of(context).pop();
Navigator.of(context).push(MaterialPageRoute(builder: (context) => ClientePesquisa("",0,"",0)));
},
submenuContent: Text("Cliente")),
MLSubmenu(onClick: () {
Navigator.of(context).pop();
Navigator.of(context).push(MaterialPageRoute(builder: (context) => ProdutoPesquisa(0,"",0,0,"")));
},
submenuContent: Text("Produto")),
MLSubmenu(onClick: () {
Navigator.of(context).pop();
Navigator.of(context).push(MaterialPageRoute(builder: (context) => VendedorPesquisa(0,"",0)));
},
submenuContent: Text("Vendedor")),
MLSubmenu(onClick: () {
Navigator.of(context).pop();
Navigator.of(context).push(MaterialPageRoute(builder: (context) => CondPGTOPesquisa("","","","")));
},
submenuContent: Text("Cond. de Pagamento")),
MLSubmenu(onClick: () {
Navigator.of(context).pop();
Navigator.of(context).push(MaterialPageRoute(builder: (context) => FormaPGTOPesquisa(0,"")));
},
submenuContent: Text("Forma de Pagamento")),
],
onClick: () {}),
MLMenuItem(
leading: Icon(Icons.local_grocery_store),
content: Text("Pré-Venda"),
onClick: () {
Navigator.of(context).push(MaterialPageRoute(builder: (context) => PedidoVenda()));
},
),
MLMenuItem(
leading: Icon(Icons.settings),
content: Text("Configuração"),
onClick: () {
Navigator.of(context).push(MaterialPageRoute(builder: (context) => Configuracao()));
}
)],
);
}
}