如何根据子元素更改容器的大小

时间:2020-08-06 14:56:48

标签: flutter dart flutter-layout flutter-text

我有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"])),
                                  ],
                                ),
                              ),
                            )
                          ],
                        ),
                      );
                    }
                    )

您可以在图片中看到,为什么黄色容器根据其内部元素的大小更改其宽度。我也需要改变高度

image 1

1 个答案:

答案 0 :(得分:0)

我通过添加解决了 mainAxisSize:MainAxisSize.min

相关问题