尝试使用堆叠小部件构建布局

Posted

技术标签:

【中文标题】尝试使用堆叠小部件构建布局【英文标题】:Trying to build a layout with stacking widgets 【发布时间】:2022-01-18 11:33:25 【问题描述】:

此外,我正在使用 ExpansionTile 尝试使用可滚动列表重新创建它。对于它的孩子,是否可以使用 ListView 使其可滚动?这是我的容器代码。

这是我的尝试,但我不断收到溢出的 RenderBox 错误

Container(
                    decoration: BoxDecoration(
                      color: Colors.white,
                      border: Border.all(
                          color: active.withOpacity(.4), width: .5),
                      boxShadow: [
                        BoxShadow(
                            offset: Offset(0, 6),
                            color: lightGrey.withOpacity(.1),
                            blurRadius: 12)
                      ],
                      borderRadius: BorderRadius.circular(8),
                    ),
                    width: _width - _width / 1.3,
                    height: _height / 2,
                    margin: const EdgeInsets.all(10.0),
                    child: Material(
                      child: ExpansionTile(
                        title: Text('Details'),
                        children: [
                          ListView(
                            itemExtent: 70,
                            padding: const EdgeInsets.all(8),
                            children: [
                              Row(
                                children: [
                                  CustomText(text: "Status :\nComplete"),
                                ],
                              ),
                              Row(
                                children: [
                                  CustomText(text: "Status :\nComplete"),
                                ],
                              ),
                              Row(
                                children: [
                                  CustomText(text: "Status :\nComplete"),
                                ],
                              ),
                              Row(
                                children: [
                                  CustomText(text: "Status :\nComplete"),
                                ],
                              ),
                                                                              
                              )
                            ],
                          ),
                        ],
                      ),
                    ))

【问题讨论】:

【参考方案1】:

--> 试试这个代码

 Container(
            decoration: BoxDecoration(
              color: Colors.white,
              border: Border.all(
                  color: Colors.blue.withOpacity(.4), width: .5),
              boxShadow: [
                BoxShadow(
                    offset: Offset(0, 6),
                    color: Colors.red.withOpacity(.1),
                    blurRadius: 12)
              ],
              borderRadius: BorderRadius.circular(8),
            ),
            margin: const EdgeInsets.all(10.0),
            child: Material(
              child: ExpansionTile(
                title: Text('Details'),
                children: [
                  ListView(
                    shrinkWrap: true,
    
                      padding: const EdgeInsets.all(8),
                      children: [
                  Row(
                  children: const [
                  Text( "Status :\nComplete"),
                ],
              ),
    
              Row(
                children: const [
                  Text( "Status :\nComplete"),
                ],
              ),
                        Row(
                          children: const [
                            Text( "Status :\nComplete"),
                          ],
                        ),
    
    
            ],
          ),
          ],
        ),
        )),

【讨论】:

当内部元素过多时,有没有办法防止溢出发生?

以上是关于尝试使用堆叠小部件构建布局的主要内容,如果未能解决你的问题,请参考以下文章

我可以将 QMainWindow 添加到堆叠的小部件吗

如何正确地将一个小部件堆叠到另一个上?

如何在 Qt 中将动画用于堆叠的小部件?

如何布局 GridView.count 以便小部件从 Flutter 中的父小部件顶部开始构建?

Flutter 中的索引堆叠。如何在所有其他小部件之上显示容器?

Bootstrap 三列布局堆叠问题