Fiz varios testes mostrando varios debugPrints em lugares específicos e cheguei no resultado de que:
- Está retornando a transferencia (e não acho que aí tenha problema)
- Está entrando no future.then() e aí dentro coloquei pra me mostrar o tamanha do widget._transferencias.length e está dando certo, mostra que vai crescendo, tambem fiz o teste se os valores estão corretos e também estão.
Resumindo está puxando para a lista as transferencias do jeito certo, o problema acredito que esteja no ListView.builder(), dentro do itemBuilder: (context, indice) { Aqui dentro }, coloquei um debugPrint simples que me retorna uma string ("entrou no itemBuilder") e ela só aparece uma vez pois eu criei manualmente uma transferencia e coloquei dentro da lista (é visto no código), quando crio no app outras transferencias da para ver a lista crescendo mas nada é mostrado além da primeira e não entra mais nesse itemBuilder pois não aparece a string mencionada. Segue o código onde eu acho que está o problema (não estou conseguindo deixar ele formatado certinho, mas de todo jeito eu também baixei o código dado em aulas, copiei ele pro meu main, acertei alguns problemas com a nova versão do dart e o SaftyNull e rodei e estava dando o mesmo problema):
class ListaTransferencias extends StatefulWidget { final List _transferencia = [];
@override State createState() { // TODO: implement createState return ListaTransferenciasState(); } }
class ListaTransferenciasState extends State { @override Widget build(BuildContext context) { // TODO: implement build widget.transferencia.add(Transferencia(100.0, 200)); return Scaffold( body: ListView.builder( itemCount: widget.transferencia.length, itemBuilder: (context,indice) { indice = widget.transferencia.length - 1; debugPrint("Entrou no itemBuilder"); final transferencia = widget.transferencia[indice]; return ItemTransferencia(transferencia); }, ), floatingActionButton: FloatingActionButton( onPressed: () { final Future<Transferencia?> future = Navigator.push(context, MaterialPageRoute(builder: (context) { return FormularioTransferencia(); })); future.then((transferenciaRecebida) { if (transferenciaRecebida != null) { widget.transferencia.add(transferenciaRecebida); debugPrint('${widget.transferencia.length}'); } }); }, child: Icon(Icons.add), ), appBar: AppBar( title: Text('Transferencias'), ), ); } }