Olá, Pedro.
Tudo bem?
Parece que pode haver um problema com a forma como você está usando o Navigator.pop método. Você está ligando duas vezes no onPressed caso do ElevatedButton. A primeira chamada está fora do if (_formKey.currentState!.validate()) bloco e a segunda está dentro dele. Isso pode causar um comportamento inesperado.
Tente remover a primeira chamada de Navigator.pop(widget.taskContext); fora do if bloco e manter apenas a que está dentro do bloco. Desta forma, a navegação só ocorrerá se o formulário for válido. O seu código vai ficar mais ou menos assim:
ElevatedButton(
onPressed: () {
if (_formKey.currentState!.validate()) {
TaskInherited.of(widget.taskContext).newTask(
nameController.text,
imageController.text,
int.parse(difficultyController.text)
);
ScaffoldMessenger.maybeOf(context)!.showSnackBar(const SnackBar(
content: Text('Tarefa sendo concluída'),
));
Navigator.pop(widget.taskContext);
}
},
child: const Text('Adicionar')
)
Certifique-se de testar esta modificação e ver se ela resolve o problema de a tarefa não ser adicionada à tela inicial. Se o problema persistir, pode haver outros problemas no código ou na árvore de widgets da sua aplicação que podem estar afetando a navegação.
Espero ter ajudado. Qualquer dúvida manda aqui. Valeu.