I have a ListView with dynamic content where I would like every item to have dynamic height based on their content, but if I do not set a fixed height of every item I get the error
package:flutter/src/rendering/sliver_multi_box_adaptor.dart': Failed assertion: line 549 pos 12: 'child.hasSize': is not true.
Here is my full layout for the ListView itemBuilder:
return Container(
key: _key,
// If I set height: 500 here it works
child: InkWell(
onTap: () => _cardTap(_key, context, house),
child: Card(
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(16.0),
),
semanticContainer: true,
clipBehavior: Clip.antiAliasWithSaveLayer,
elevation: 4,
child: Container(
color: Colors.white,
child: Stack(
fit: StackFit.expand,
children: <Widget>[
ImageHelper.getHouseCategoryImage(widget.house.houseCategory),
Padding(
padding: const EdgeInsets.fromLTRB(12, 8, 12, 8),
child: Align(
alignment: Alignment.topLeft,
child: Column(
mainAxisSize: MainAxisSize.min,
children: <Widget>[
Row(
children: <Widget>[
Expanded(
child: Text(
widget.house.addressStreet,
style: TextStyle(fontSize: 26, fontWeight: FontWeight.bold, color: Colors.white),
),
),
Align(
alignment: Alignment.centerRight,
child: IconButton(
icon: Image.asset(widget.isFullscreen ? 'assets/images/button_collapse.png' : 'assets/images/button_expand.png'),
),
)
],
),
SizedBox(
height: 56,
),
Row(
children: <Widget>[
Expanded(
child: Text(
'Boligværdi',
style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold, color: Colors.white),
),
),
Align(
alignment: Alignment.centerRight,
child: Text(
'4.233.123',
style: TextStyle(fontSize: 18, fontWeight: FontWeight.bold, color: Colors.white),
),
)
],
),
SizedBox(
height: 32,
),
Padding(
padding: const EdgeInsets.only(bottom: 8.0),
child: Container(
height: 60,
decoration: BoxDecoration(
color: Color(0xFFFFFFFF),
borderRadius: BorderRadius.circular(10.0)
),
),
),
Padding(
padding: const EdgeInsets.only(bottom: 8.0),
child: Container(
height: 60,
decoration: BoxDecoration(
color: Color(0xFFFFFFFF),
borderRadius: BorderRadius.circular(10.0)
),
),
),
Padding(
padding: const EdgeInsets.only(bottom: 8.0),
child: Container(
height: 60,
decoration: BoxDecoration(
color: Color(0xFFFFFFFF),
borderRadius: BorderRadius.circular(10.0)
),
),
),
Padding(
padding: const EdgeInsets.only(bottom: 8.0),
child: Container(
height: 60,
decoration: BoxDecoration(
color: Color(0xFFFFFFFF),
borderRadius: BorderRadius.circular(10.0)
),
),
),
Padding(
padding: const EdgeInsets.only(bottom: 8.0),
child: Container(
height: 60,
decoration: BoxDecoration(
color: Color(0xFFFFFFFF),
borderRadius: BorderRadius.circular(10.0)
),
),
),
Padding(
padding: const EdgeInsets.only(bottom: 8.0),
child: Container(
height: 60,
decoration: BoxDecoration(
color: Color(0xFFFFFFFF),
borderRadius: BorderRadius.circular(10.0)
),
),
)
],
),
),
)
],
),
)
)
)
);
How do I get the items (Container, Card or is it Column that is the problem..) to take the height they need to display its content?
Thank you
Søren
User contributions licensed under CC BY-SA 3.0