我想做一个小部件滚动,这基本上是列包含其他列。
我的TreeWidget可能包含一个或多个TreeWidget,如下所示。我试着把它 Package 在一个SingleChildScroolView里面,就像这样:
SingleChildScrollView {
TreeWidget {
TreeWidget{
TreeWidget {
Column {
Text( 'something' )
Text( 'something' )
}
}
}
}
}
请注意,我事先并不知道任何TreeWidget的大小。除非我先把树向下走,收集高度,最后计算总高度。
渲染时,Flutter会抱怨无限大。
我的问题是:如何使一个递归的小部件像上面的滚动?
错误消息:
导致错误的相关小部件为:列列:文件:///..路径.../lib/main_widget.dart:46:16
溢出的RenderFlex的方向为Axis. vertical。溢出的RenderFlex边缘在渲染中用黄色和黑色条纹图案标记。这通常是由于内容对于RenderFlex来说太大而导致的。
考虑应用弹性系数(例如使用扩展的小部件),以强制RenderFlex的子对象适合可用空间,而不是调整到其自然大小。这被认为是一种错误情况,因为它表示存在无法查看的内容。如果内容确实大于可用空间,请考虑在将其放入Flex之前使用ClipRect小部件对其进行裁剪,或者使用可滚动容器而不是Flex,如ListView。
1条答案
按热度按时间mm5n2pyu1#
如果您的
TreeWidget
内部包含一个Column
,您可能需要在其他列中的每一列中添加“Expanded
”。例如:和/或,您可以将所有内容 Package 在
SizedBox
中,并使用其height
属性为其给予固定的高度。这个height
属性也可以设置为MediaQuery.of(context).size.height
,以便动态调整到全屏高度。