'LateInitializationError: Field '_children@51042623' has not been initialized

[![LateInitializationError: Field '_children@51042623' has not been initialized][1]]

I'm having this problem when i add items to a List from page 2 to page 1 [1]: https://i.stack.imgur.com/LzmDY.png I'm using SQLITE to create db for the list, If i run the app again it works normally. How can i solve this problem? I searched on this website and i found one post but i tried to follow the step and i still can't solve.

code of page 2


import 'dart:convert';
import 'dart:io';
import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:mood3/helper/AnotacaoHelper.dart';
import 'package:mood3/main.dart';
import 'package:mood3/model/Diario.dart';
import 'package:mood3/telas/RecebeDados.dart';
import 'package:path_provider/path_provider.dart';
import 'package:toast/toast.dart';

class Escrita extends StatefulWidget {


  @override
  State<Escrita> createState() => _EscritaState();
}

class _EscritaState extends State<Escrita> {




  TextEditingController _controllerTitulo = TextEditingController();
  TextEditingController _controllerTexto = TextEditingController();
  var _db = AnotacaoHelper();



  List<Diario> _diarioupdate = <Diario>[];


  _recuperarDiario()async{
    List diarioRecuperado = await _db.recuperarDiario();

    List<Diario> diariotemporario = <Diario>[];

    for ( var item in diarioRecuperado){
      Diario diario = Diario.fromMap(item);
      diariotemporario.add(diario);
    }


    setState((){
      _diarioupdate = diariotemporario;
    });

    print("Lista anotacoes : "+ diarioRecuperado.toString() );
  }



  _salvarAnotacao() async {
    String titulo = _controllerTitulo.text;
    String texto = _controllerTexto.text;
    Diario diario = Diario(titulo, texto, DateTime.now().toString());
    int? resultado = await _db.salvarDiario(diario);
    print("salvar anotacao: " + resultado.toString());

    _controllerTitulo.clear();
    _controllerTexto.clear();
    _recuperarDiario();
  }



  @override
  Widget build(BuildContext context) {


    ToastContext().init(context);
    GlobalKey<FormState>myFormKey=GlobalKey<FormState>();
    return WillPopScope(
      onWillPop:  () async => false,
      child:  Scaffold(
        key: myFormKey,
      appBar: AppBar(
        automaticallyImplyLeading: false,
        title: InkWell(
          child: Image.asset("icones/mood.jpg"),
          onTap: ()=>  Navigator.push(context, MaterialPageRoute(builder: (context) => TelaPrincipal())),
        ),
        actions: [
          IconButton(
            icon: Image.asset("testeimagem/2.png"),
            onPressed: (){
              print("acao: chat");
            },
          ),
          IconButton(
            icon: Icon(Icons.account_circle),
            onPressed: (){
              print("acao: account");
            },
          ),
        ],
        backgroundColor: Colors.black,
      ),
      body: Center(
        child: SingleChildScrollView(
          child:Column(
            children: [
              Padding(
                  padding: EdgeInsets.symmetric(horizontal: 8, vertical: 16),

                  child: TextField(
                    keyboardType: TextInputType.multiline,
                    controller: _controllerTitulo,
                    autofocus: true,
                    decoration: InputDecoration(
                      hintText: "Diary Title",
                      border: OutlineInputBorder(
                        borderRadius: BorderRadius.circular(8),
                        borderSide: BorderSide.none,
                      ),
                      filled: true,
                      fillColor: Colors.blueGrey,
                    ),
                  )),
              Padding(
                padding: EdgeInsets.symmetric(horizontal: 8, vertical: 16),
                child: TextField(
                  keyboardType: TextInputType.multiline,
                  controller: _controllerTexto,
                  maxLines: null,
                  decoration: InputDecoration(
                    hintText: "Diary Text",
                    border: OutlineInputBorder(
                      borderRadius: BorderRadius.circular(8),
                      borderSide: BorderSide.none,
                    ),
                    filled: true,
                    fillColor: Colors.blueGrey,
                  ),
                ),
              ),

            ],
          ),),
      ),



      floatingActionButton: SpeedDial(
          icon: CupertinoIcons.pen,
          backgroundColor: Colors.black,
          overlayColor: Colors.black,
          children: [
            SpeedDialChild(
                child: Icon(CupertinoIcons.arrow_left),
                backgroundColor: Colors.white,
                label: "Back",
                onTap: () {
                  Navigator.pop(context);
                  Navigator.push(context, MaterialPageRoute(builder: (context) => RecebeDados() ));
                }
            ),
            SpeedDialChild(
              child: Icon(CupertinoIcons.check_mark),
              backgroundColor: Colors.white,
              label: "Save",
              onTap: ()  {
                _salvarAnotacao();
                Navigator.of(context,rootNavigator: true).pop();
                Navigator.push(context, MaterialPageRoute(builder: (context) => RecebeDados() ));
                   ScaffoldMessenger.of(context).showSnackBar(SnackBar(
                       backgroundColor: Colors.green,
                    content: Text('Diary Saved')));
              },
            ),
            SpeedDialChild(
                child: Icon(CupertinoIcons.add),
                backgroundColor: Colors.white,
                label: "Post",
                onTap: () {
                  ScaffoldMessenger.of(context).showSnackBar(SnackBar(
                    backgroundColor: Colors.green,
                      content: Text('You Diary has been published successfully'),
                  ));
                  Navigator.pop(context);
                }
            ),

          ]
      ),


    ),);
  }
}




code of page 1


import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart';
import 'package:flutter_speed_dial/flutter_speed_dial.dart';
import 'package:line_icons/line_icons.dart';
import 'package:mood3/helper/AnotacaoHelper.dart';
import 'package:mood3/main.dart';
import 'package:mood3/model/Diario.dart';
import 'package:mood3/telas/Diary.dart';
import 'package:mood3/widget/DismissibleWidget.dart';
import 'dart:convert';
import 'dart:io';
import 'package:path_provider/path_provider.dart';
import 'package:mood3/telas/escrita.dart';



class RecebeDados extends StatefulWidget {


  @override
  State<RecebeDados> createState() => _RecebeDadosState();



}



class _RecebeDadosState extends State<RecebeDados> {


Map<String,dynamic> _ultimaTarefaRemovida = Map();



var _db = AnotacaoHelper();


List<Diario> _diarioupdate2 = <Diario>[];



_recuperarDiario()async{
  List diarioRecuperado = await _db.recuperarDiario();


  List<Diario> diariotemporario = <Diario>[];


  for ( var item in diarioRecuperado){
    Diario diario = Diario.fromMap(item);
    diariotemporario.add(diario);
  }


  setState((){
    _diarioupdate2 = diariotemporario;
  });

  print("Lista anotacoes : "+ diarioRecuperado.toString() );
  print("Lista anotacoes : "+ _diarioupdate2.toString() );
  print("Lista anotacoes : " + diariotemporario.toString());
}




  @override
  void initState() {
    super.initState();
    _recuperarDiario();
  }










  @override
  Widget build(BuildContext context) {




      return  WillPopScope(
        onWillPop: () async => false,
        child: Scaffold(
          floatingActionButtonLocation: FloatingActionButtonLocation.endDocked,
          floatingActionButton: SpeedDial(
              animatedIcon: AnimatedIcons.menu_close,
              backgroundColor: Colors.black,
              icon: CupertinoIcons.pencil,
              overlayColor: Colors.black,
              children: [
                SpeedDialChild(
                  child: Icon(CupertinoIcons.arrow_left),
                  backgroundColor: Colors.white,
                  label: "Back",
                  onTap: () {
                    Navigator.pop(context);
                    Navigator.push(context, MaterialPageRoute(builder: (context) => TelaPrincipal() ));
                  },
                ),
                SpeedDialChild(
                    child: Icon(CupertinoIcons.add),
                    backgroundColor: Colors.white,
                    label: "Add",
                    onTap: () {
                      Navigator.pop(context);
                      Navigator.push(context, MaterialPageRoute(builder: (context) => Escrita() ));
                    }
                ),
                SpeedDialChild(
                  child: Icon(CupertinoIcons.delete),
                  backgroundColor: Colors.white,
                  label: "Remove",
                  onTap: () {



                  },
                ),

              ]
          ),
          body: Column(
            children: [
              Expanded(child:
              ListView.separated(
                itemCount: _diarioupdate2.length,
                separatorBuilder: (context,index)=> Divider(),
                itemBuilder: (context,index){
                  final diario = _diarioupdate2[index];
                  return Card(
                    child: DismissibleWidget(
                      child: buildListTile(diario),
                    ),
                  );
                },

              ),
              ),
            ],
          )
        ),
      );




  }
Widget buildListTile(Diario diario) => ListTile(
  contentPadding: EdgeInsets.symmetric(
    horizontal: 16, vertical: 16,
  ),
  leading: CircleAvatar(
    radius: 28,
    backgroundImage: AssetImage("icones/m.png"),
  ),
  title: Column(
    crossAxisAlignment: CrossAxisAlignment.start,
    children: [
      Text(diario.titulo!,
        style: TextStyle(
          fontWeight: FontWeight.bold),
        ),
      const SizedBox(height: 4),
      Text("${diario.data} - ${diario.mensagem}")
    ],
  ),
);
}





Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source