2
respostas

[Bug] Aula 5 - Finalizando - Ao testar o codigo só é apresentado o list das tarefas se clicar no btn refresh.

Boa tarde tudo bem, espero que sim!

Então, fiz o curso e gostei bastante. Sei que têm muitas coisas boas e importantes parabéns por todos os envolvidos.

Problema: Ao adicionar a tarefa o listView da tabela não está atualizando automaticamente. Somente é possível ver se clicar no botão refresh que fica na barra de Tarefas.

Disponibilizei o projeto com o código feito pelo próprio professor referente a duvida em questão.

https://github.com/francispinheiro/task_f

Por favor se puderem olhar e ajudar ficarei muito grato,

Desde já agradeço, abraços

2 respostas

Olá, Francis! Fico feliz que esteja gostando do curso de Flutter e que tenha encontrado um desafio para superar.

Pelo que você descreveu, parece que o problema está relacionado ao não disparo de um evento de atualização após a inserção de uma nova tarefa. No Flutter, quando queremos que uma mudança de estado seja refletida na interface, precisamos informar ao framework que um update é necessário.

No seu caso, como você está utilizando um ListView para exibir as tarefas, você provavelmente está usando um StatefulWidget para gerenciar o estado da lista de tarefas. Quando uma nova tarefa é adicionada, você precisa chamar o método setState() para informar ao Flutter que a interface precisa ser atualizada.

Aqui está um exemplo de como você pode fazer isso:

void _addTask(String task) {
  setState(() {
    _taskList.add(task);
  });
}

Neste exemplo, _addTask é um método que adiciona uma nova tarefa à lista _taskList e depois chama setState para disparar uma atualização da interface.

Por favor, verifique se você está chamando o método setState() após a adição de uma nova tarefa. Se você estiver usando algum tipo de gerenciamento de estado mais avançado (como blocs ou MobX), o princípio é o mesmo, mas a implementação pode variar.

Espero ter ajudado e bons estudos!

Olá Matheus,

Tudo bem com vc?

Olhei a sua orientação, obrigado pela disposição em atender-me.

Pelo que percebi não é bem isso que foi apresentado no curso. Mais vou dar maiores detalhes do problema que estou tendo pois esse é o código do instrutor Kako (Caio Couto Moreira).

Então o que passei no link é o código do instrutor: https://github.com/francispinheiro/task_f

Sobre o problema:

ListView:

Tela: initial_screen.dart

    Essa é a tela onde é apresentada por um listView...
    
    ![Insira aqui a descrição dessa imagem para ajudar na acessibilidade](https://cdn1.gnarususercontent.com.br/1/32241/318a16f6-db63-496f-a904-a2be30238ffc.png)  
    
    
    aqui é o floatingActionButton passando o contexto e esperando o retorno para que seja atualizado (then).
    
    ![Insira aqui a descrição dessa imagem para ajudar na acessibilidade](https://cdn1.gnarususercontent.com.br/1/32241/647acd6f-11fb-4f83-980d-9a62d4dfc87c.png)  

Tela: form_screen.dart

Essa é a tela onde é cadastrado uma nova tarefa.
Que quando é clicado no ElevatedButton (Adicionar) ela salva os dados no banco de dados e  ao fechar utilizando o Navigator.pop então a tela (initial_screen.dart) seria atualizada e apresentada a list com o nova tarefa cadastrada sem precisar clicar no botao refresh.

![Insira aqui a descrição dessa imagem para ajudar na acessibilidade](https://cdn1.gnarususercontent.com.br/1/32241/be6196e3-be40-4fc7-9cfc-3d2d6f037417.png) 

Imagens da tela aplicativo: 

![Insira aqui a descrição dessa imagem para ajudar na acessibilidade](https://cdn1.gnarususercontent.com.br/1/32241/f6fd3659-baec-438c-ab27-63466cb8e73a.png) 

![Insira aqui a descrição dessa imagem para ajudar na acessibilidade](https://cdn1.gnarususercontent.com.br/1/32241/3664e789-cbf3-497d-a148-28d4cda44950.png) 

![Insira aqui a descrição dessa imagem para ajudar na acessibilidade](https://cdn1.gnarususercontent.com.br/1/32241/993886ae-c18a-49bc-95d3-fdc2068bf94c.png) 

![Insira aqui a descrição dessa imagem para ajudar na acessibilidade](https://cdn1.gnarususercontent.com.br/1/32241/2692d8de-b084-4270-a7a8-99fa4c9406ad.png) 

![Insira aqui a descrição dessa imagem para ajudar na acessibilidade](https://cdn1.gnarususercontent.com.br/1/32241/465ed0e9-4a82-44f7-8f22-d532f0b61a32.png) 

Então a solução proposta não atendeu a processo feito pelo instrutor. Alias o instrutor até diz que poderia ajudar se caso tivesse algum problema era só abrir um atendimento no forum.

Acho que é isso pessoal, quem puder ajudar, obrigado