Flutter “RenderBox was not laid out” Hatası Nasıl Çözülür?

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]}')),
        );
      }
  )
  ,
)
Paylaş:

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir