我尝试创建一个滚动栏,如果窗口小部件没有填满,它会在屏幕底部显示。但是,如果填满了,它就会滚动。
首先,我尝试使用简单的Column
和MainAxisSize.max
以及Expand
和空的Container
,这两种方法在列溢出之前运行良好。
[...]
Column(
mainAxisSize: MainAxisSize.max,
children: [
MyWidget(),
MyWidget(),
[...],
MyWidget(),
Expand(child: Container()),
ElevatedButton()
],
)
然后我搜索了一下,发现推荐的使Column
可滚动的解决方案是SingleChildScrollView
。这使得我在列中的所有小部件都消失了(我仍然不确定为什么),直到我删除了Expand
,虽然解决了一个问题,但引入了另一个问题。
[...]
SingleChildScrollView(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
MyWidget(),
MyWidget(),
[...],
MyWidget(),
// Expand(child: Container()),
ElevatedButton()
],
)
)
所以我的问题是,如何使Column既可滚动,又不需要所有的空间来展开,以便最后一个子列位于屏幕底部?
1条答案
按热度按时间uurity8g1#
IntrinsicHeight
太贵而无法使用,但在这种情况下,您别无选择。请尝试以下操作:在这个例子中,如果你设置了蓝色
container
的高度,你会看到scrollview
的作品,如果你使用Expanded
上,它采取了可用的大小.