我面临此例外:
FlutterError(RenderViewport不支持返回固有维度。计算固有维度需要示例化视口的每个子级,这克服了视口懒惰的缺点。如果您只是尝试在主轴方向收缩视口,请考虑RenderShrinkWrappingViewport渲染对象(ShrinkWrappingViewport小部件),该对象无需实现固有维度API即可实现该效果。)
当我添加ProductsWidget
时,发生异常。
产品小工具的代码为:
class ProductsWidget extends GetResponsiveView<HomeTabController> {
@override
Widget build(BuildContext context) {
return ListView.builder(
shrinkWrap: true,
itemCount: 3,
// padding: EdgeInsets.symmetric(vertical: 20),
physics: NeverScrollableScrollPhysics(),
itemBuilder: (context, index) => Column(
children: [
Row()])}}
调用代码为:
body: LayoutBuilder(
builder: (BuildContext context, BoxConstraints constraints) {
return SingleChildScrollView(
child: ConstrainedBox(
constraints: BoxConstraints(
minHeight: constraints.maxHeight,
),
child: IntrinsicHeight(
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Expanded(
// flex: 1,
child: HomeAppBar()),
// listView
// i made shrinkWrap=true
// neverScroll
Flexible(fit: FlexFit.tight, child: ProductsWidget()),
],
),
),
),
);
}),
3条答案
按热度按时间2nbm6dog1#
尝试将ProductsWidget Package 在SizedBox中,并为其给予宽度(宽度:double.maxFinite)和可能的高度。
我有一个类似的问题,我发现下面的帖子很有帮助:flutter listview with radio not showing in alertDialog
n7taea2i2#
这是因为ListView构建每个子级都很慢。您可以使用 Package 在SingleChildScrollView中的Column来代替ListView。
6xfqseft3#
将
SingleChildScrollView
替换为CustomScrollView
,如下所示: