Olá Bruno, tudo bem com você?
Na verdade como o flutter não teremos problema de plataforma em relação aos widgets
, o que aconteceu provavelmente é que perdemos o contexto e ao chamar a função explodiu o erro :)
A questão é que da maneira que estamos querendo fazer fica um pouco difícil de capturar o contexto para utilizar o Scaffold.of(context)
, para conseguir o comportamento esperado o ideal seria envolver o nosso botão com outro widget
da seguinte forma:
Builder(
builder: (BuildContext context) => RaisedButton(
child: Text(_confirm, style: TextStyle(fontSize: 16)),
onPressed: () {
final int numeroConta =
int.tryParse(_controllerNumeroConta.text);
final double valor =
double.tryParse(_controllerCampoValor.text);
Com o Builder
a gente consegue garantir essa passagem de contexto e dessa forma conseguimos imprimir a informação:
final transferencia = Transferencia(valor, numeroConta);
Scaffold.of(context).showSnackBar(
SnackBar(content: Text("$transferencia"))
);
Future.delayed( Duration(seconds: 4)).then( (_) => Navigator.pop(context, transferencia));
Veja que no final eu dou um Future.delayed
porque se eu chamasse o SnackBar
e depois o Navigator.pop
instantaneamente iria fechar, dessa forma eu consigo garantir a duração necessária para mostrar a informação antes de fechar a tela :)
Acredito que na parte de comunicação com web api o instrutor irá falar sobre essa questão de perder o contexto do widget
, mas por enquanto essa seria a solução para essa Snackbar :)
Abraços e Bons Estudos!