【发布时间】:2019-02-27 02:34:15
【问题描述】:
一个页面包含一个ListView,其itemBuilder返回一个StatefulWidget,但是在这个页面中调用setState之后,检索到了新数据,但是ListView不会更新,直到将当前现有项目滚动到屏幕外。
用StatelessWidget 替换项目是可行的,但我的项目需要有状态,因为它们每个都有一些动画。
如何刷新ListView?
ListView.builder(
padding: EdgeInsets.only(top: listMarginTop, bottom: marginBottom),
controller: scrollController,
itemCount: cellCount,
itemBuilder: (BuildContext context, int index) {
return Container(
margin: EdgeInsets.fromLTRB(marginLeft, verticalSpacing, marginRight, 0),
height: itemHeight,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: <Widget>[
Container(
width: itemWidth,
height: itemHeight,
child: getItem(index * 2, Size(itemWidth, itemHeight)),///return a StatefulWidget
),
Container(
width: itemWidth,
height: itemHeight,
child: getItem(index * 2 + 1, Size(itemWidth, itemHeight)),
)
],
),
);
},
),
【问题讨论】:
-
请分享一些代码以查看您的实现并帮助您,谢谢:)
标签: flutter