我想用这段代码在我的 Flutter 应用程序中显示一个带 ListView.build 的 SimpleDialog:
showDialog(
context: context,
builder: (BuildContext context) {
return new SimpleDialog(
children: <Widget>[
new FittedBox(
child: new ListView(
children: <Widget>[
new Text("one"),
new Text("two"),
],
),
)
],
);
},
);
它会产生这个错误(对不起,我不能将日志包装为代码,因为 Stackoverflow 抱怨代码太多) :
毕业典礼上被爆出的例外情况: 毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典礼上,毕业典 I/flutter (4481) : 在 PerformLayout ()期间抛出以下断言: I/flutter (4481) : RenderViewport 不支持返回内部维度。 I/flutter (4481) : 计算内部维度将需要实例化 viewport 的每个子级,其 I/flutter (4481) : 击败了视图懒惰的观点。 I/flutter (4481) : 如果您只是试图在主轴方向收缩视图,请考虑 I/flutter (4481) : RenderShrinkWrappingViewport 呈现对象(ShrinkWrappingViewport 小部件) ,它实现了 I/flutter (4481) : 没有实现本征维度 API 的效果。 I/flutter (4481) : ... I/flutter (4481) : 另一个异常被抛出: RenderBox 未被布局: RenderPhysicalShape # 83d92 relayoutBorder = up2 NEEDS-PAINT I/flutter (4481) : 另一个异常被抛出: ‘ package: flutter/src/rending/shift _ box. dart’: 失败断言: 第310行 pos 12: ‘ child. hasSize’: 不正确。 I/flutter (4481) : 另一个异常被抛出: RenderBox 未被布局: RenderPhysicalForm # 83d92 relayoutBorder = up2
我尝试使用具有特定高度和宽度的 Container,它工作正常,但是我希望 ListView 能够适应对话框。
如何在 SimpleDialog 中包含 ListView?