我有ListView元素,其中有一个Column 与文本元素。事实是,文本总是具有不同的大小,我需要添加:true并向Container添加Flexible。事实是某些Text元素很短,因此这些元素之间有很大的间距,但是我不能减小Container的大小,否则大的文本将无法容纳。如何使Container根据内部元素的大小确定大小? 约束:BoxConstraints(minHeight:80,maxHeight:180)完全忽略minHeight
ListView.builder(primary: false, shrinkWrap: true, itemCount: r[index]['rasp'].length,
itemBuilder: (BuildContext cotext, ind){
return Container(
color: Colors.red,
constraints: BoxConstraints(
minHeight: 80,
maxHeight: 180,
),
child: Row(
children: <Widget>[
Container(
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(r[index]['rasp'][ind]['time'].substring(0, 5), style: themes[0][current]["time_start"]),
Text(r[index]['rasp'][ind]['time'].substring(8, 13), style: themes[0][current]["time_end"]),
],
),
),
Flexible(
child: Container( // ЭТОТ
color: Colors.yellow,
padding: EdgeInsets.only(left: 10),
child: Column(
mainAxisAlignment: MainAxisAlignment.start,
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Text(r[index]['rasp'][ind]['type'], style: pairType(r[index]['rasp'][ind]['type']),),
Flexible(child: Text(r[index]['rasp'][ind]['predmet'], softWrap: true, style: themes[0][current]["pair_name"])),
RichText(
text: TextSpan(
text: r[index]['rasp'][ind]['aud'],
style: themes[0][current]["aud"],
children: <TextSpan>[
TextSpan(text: " - " + r[index]['rasp'][ind]['place'], style: themes[0][current]["place"]),
],
),
),
Flexible(child: Text(r[index]['rasp'][ind]['prepod'], softWrap: true, style: themes[0][current]["teacher"])),
],
),
),
)
],
),
);
}
)
您可以在图片中看到,为什么黄色容器根据其内部元素的大小更改其宽度。我也需要改变高度
答案 0 :(得分:0)
我通过添加解决了 mainAxisSize:MainAxisSize.min