首页 > 解决方案 > 如何在用 singlechildscrollview 包裹的列内使用垫片?

问题描述

我试图在一个用 singlechildscrollview 包裹的列中使用 spacer,它给了我一个错误。

RenderFlex children have non-zero flex but incoming height constraints are unbounded.

这是我的小部件

class Test extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Form(
        child: SingleChildScrollView(
      child: Column(
        children: <Widget>[
          TextFormField(),
          TextFormField(),
          //Spacer()
          Divider(),
          Icon(Icons.block)
        ],
      ),
    ));
  }
}

我应该用什么?感谢您的帮助

标签: flutter

解决方案


您可以尝试一下,我使用您的代码添加了一个示例,它可以工作:

class Test extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return Scaffold(body: LayoutBuilder(
      builder: (context, constraint) {
        return Form(
          child: SingleChildScrollView(
            child: ConstrainedBox(
              constraints: BoxConstraints(minHeight: constraint.maxHeight),
              child: IntrinsicHeight(
                child: Column(
                  children: <Widget>[
                    TextFormField(),
                    TextFormField(),
                    Spacer(),
                    Divider(),
                    Icon(Icons.block)
                  ],
                ),
              ),
            ),
          ),
        );
      },
    ));
  }
}

检查此 Github 问题以获取有关上述解决方案的更多详细信息:Wrapping a Column with an expand in a SingleChildScrollView throws an exception


推荐阅读