我在实现SingleChildScrollView
时遇到了问题。在我的理解中,我可以使用SingleChildScrollView
来使其中的小部件可滚动。我创建了以下基本示例,其中我希望ElevatedButton
位于底部。剩余的空间将由其他小部件占用。根据我的理解,如果其他小部件中的内容超过了可用空间,那么由于SingleChildScrollView
,内容应该可以滚动。
return Scaffold(
backgroundColor: Colors.white,
body: SafeArea(
child: Column(
children: [
Text("Some Text Here"),
Column(
children: [
Expanded(
child: SingleChildScrollView(
scrollDirection: Axis.vertical,
child: Column(
children: [
Container(color: Colors.red, height: 500),
Text("HELLO"),
Container(color: Colors.red, height: 500),
],
),
),
),
ElevatedButton(
onPressed: () {},
child: const Text("BUTTON"),
),
],
)
],
),
),
);
我在SingleChilScrollView
上面使用了Expanded
,这样在放置ElevatedButton
之后的剩余空间应该是可滚动区域,这样它就有了高度限制。
如果有人能详细解释这个问题的解决方法,我将不胜感激,因为这将帮助我澄清我的概念。谢谢大家。
Error:在performLayout()期间引发了以下Assert:RenderFlex子对象具有非零的flex,但传入的高度约束是无边界的。
2条答案
按热度按时间agxfikkp1#
你只需要两个列。第一列用于SinglechildScrollView中的布局,第二列用于SinglechildScrollView的布局,其中文本位于顶部,按钮位于底部。
u5i3ibmn2#
第二个
Column
正在获取 * 传入的高度约束是无界的。*,您可以使用Expanded
小部件 Package 它以获取可用空间。