根据内容调整容器的高度

时间:2020-08-12 16:41:21

标签: flutter dart flutter-layout hybrid-mobile-app

在我的应用程序中,我在主容器(外部容器)的内部有一个容器(内部容器)。内部容器的表单数据如下:

enter image description here

请注意上图中内部容器周围的顶部和底部边距。当我提交表单时,我们将显示验证消息。然后,由于内容更多,出现了8个像素的溢出,如下所示。

enter image description here

代替添加滚动条,我可以减小其周围的边距增加内部容器的大小吗?有没有可遵循的小部件或方法?

编辑:

添加我到目前为止开发的代码

Widget build(BuildContext context) {
    return Stack(alignment: Alignment.center, children: [
      Container(
          decoration: BoxDecoration(
              gradient: LinearGradient(
            begin: Alignment(0.0, 0.0),
            end: Alignment(0.0, 1.0),
            colors: [Colors.indigo[900], Colors.blue],
            tileMode: TileMode.clamp,
          )),
          child: Center(
              child: Container(
                  decoration: BoxDecoration(
                      borderRadius: BorderRadius.circular(30.0),
                      gradient: LinearGradient(
                        begin: Alignment(0.0, 0.0),
                        end: Alignment(0.0, 1.0),
                        colors: [Colors.blue, Colors.indigo[900]],
                        tileMode: TileMode.clamp,
                      )),
                  margin:
                      EdgeInsets.symmetric(horizontal: 20.0, vertical: 50.0),
                  padding: EdgeInsets.all(20.0),
                  child: Column(
                    children: [
                      Row(
                        crossAxisAlignment: CrossAxisAlignment.start,
                        children: new List.generate(
                            this.forms.length,
                            (index) => new FormSelector(this._changeForm,
                                form: forms[index])),
                      ),
                      this.getForm(this.forms)
                    ],
                  ))))
    ]);
  }

请帮助我解决这个问题。

谢谢...

2 个答案:

答案 0 :(得分:0)

您最好的选择是使用堆栈小部件而不是容器,因为您可以将堆栈设置为重叠,从而几乎没有利润。

请参见以下视频,了解堆栈的工作原理: https://www.youtube.com/watch?v=liEGSeD3Zt8&vl=en

希望这可以解决您的问题:D

答案 1 :(得分:0)

代替使用填充,请尝试删除填充,然后在Column

中指定

mainAxisAlignemnt: MainAxisAlignment.center

这样,默认行为是将所有小部件放置在中心,因此上方将留有空间,并将它们和容器放在下面。随着柱子的增大,波纹管上方和下方的空间将缩小。

请注意,如果没有滚动,如果屏幕尺寸不够大,仍然会导致溢出。