能否在ListView
中包含SingleChildScrollView
?我们试图创建三个按钮,它们的作用类似于单选按钮。我们从Flutter : Custom Radio Button找到了解决方案。
但在我们的情况下,它由SingleChildScrollView
包装。
body: SingleChildScrollView(
padding: const EdgeInsets.all(8.0),
child: Column(
crossAxisAlignment: CrossAxisAlignment.start,
children: <Widget>[
Row(
children: <Widget>[
Text(
Localization.of(context).priority,
style: TextStyle(fontSize: 15.0),
),
ListView.builder(
scrollDirection: Axis.vertical,
shrinkWrap: true,
itemCount: sampleData.length,
itemBuilder: (BuildContext context, int index) {
return InkWell(
child: RadioItem(
sampleData[index],
),
);
},
)
],
)
]))
错误
The following RenderObject was being processed when the exception was fired: RenderShrinkWrappingViewport#4d85f relayoutBoundary=up27 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
RenderObject: RenderShrinkWrappingViewport#4d85f relayoutBoundary=up27 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
needs compositing
parentData: <none> (can use size)
constraints: BoxConstraints(unconstrained)
size: MISSING
axisDirection: down
crossAxisDirection: right
offset: ScrollPositionWithSingleContext#fa7e6(offset: 0.0, range: null..null, viewport: null, ScrollableState, AlwaysScrollableScrollPhysics -> ClampingScrollPhysics, IdleScrollActivity#d2e68, ScrollDirection.idle)
child 0: RenderSliverPadding#37bf3 NEEDS-LAYOUT NEEDS-PAINT NEEDS-COMPOSITING-BITS-UPDATE
parentData: layoutOffset=0.0
constraints: MISSING
geometry: null
padding: EdgeInsets.zero
textDirection: ltr
最佳答案
用ListView
小部件包围Expanded
。
如果没有为内部滚动小部件设置适当的高度,则不能在另一个滚动小部件内使用可滚动小部件。
或使用ConstrainedBox