Merhabalar bu hatamda Flutter’da ListView.builder kullanırken herkesin sıklıkla karşılaştığı sorunun çözümünü anlatacağım.
Eğer RenderBox was not laid out hatası alıyorsanız bunun sebebi genellikle Colum() içerisine yazdığınız kodlar ile alakalıdır. ListView.builder için bir ekranda kaplayacağı boyutu vermediğiniz için bu hatayı alıyorsunuz.
Çözüm:
Ekranın yatayda tamamamını kaplaması için aşağıdaki kodları kullanabilirsiniz.
Column( children: <Widget>[ Expanded( child: ListView(...), ) ], )
Belli bir yükseklik vermek için aşağıdaki kodları kullanabilirsiniz.
Column( children: <Widget>[ SizedBox( height: 200, // constrain height child: ListView(), ) ], )
Expanded( child: ListView.builder( padding: const EdgeInsets.all(8), itemCount: entries.length, itemBuilder: (BuildContext context, int index) { return Container( height: 50, color: Colors.amber[colorCodes[index]], child: Center(child: Text('Entry ${entries[index]}')), ); } ) , )