【发布时间】:2018-11-20 11:38:35
【问题描述】:
我有一个带有大量不同视图的 TabBarView()。我希望它们成为顶部有 TextField 和下方有 ListView.Builder() 的 Column,但两个小部件应位于同一可滚动区域(scrollview)中。我实现它的方式引发了一些错误:
@override
Widget build(BuildContext context) {
return new Column(
mainAxisAlignment: MainAxisAlignment.center,
mainAxisSize: MainAxisSize.max,
children: <Widget>[
new Padding(
padding: EdgeInsets.symmetric(horizontal: 16.0, vertical: 8.0),
child: new TextField(
decoration: new InputDecoration(
hintText: "Type in here!"
),
)
),
new ListView.builder(
itemCount: _posts.length, itemBuilder: _postBuilder)
],
);
}
错误:
I/flutter (23520): The following assertion was thrown during performResize():
I/flutter (23520): Vertical viewport was given unbounded height.
I/flutter (23520): Viewports expand in the scrolling direction to fill their container.In this case, a vertical
I/flutter (23520): viewport was given an unlimited amount of vertical space in which to expand. This situation
I/flutter (23520): typically happens when a scrollable widget is nested inside another scrollable widget.
I/flutter (23520): If this widget is always nested in a scrollable widget there is no need to use a viewport because
I/flutter (23520): there will always be enough vertical space for the children. In this case, consider using a Column
I/flutter (23520): instead. Otherwise, consider using the "shrinkWrap" property (or a ShrinkWrappingViewport) to size
I/flutter (23520): the height of the viewport to the sum of the heights of its children.
我阅读了有关在扩展区域中堆叠 ListView.builder() 的信息,但它使文本字段有点“粘性”,这不是我想要的。 :-)
我也遇到过 CustomScrollView,但不完全了解如何实现它。
【问题讨论】:
-
用展开的小部件包装 ListView
标签: flutter dart flutter-layout