Dart SliverList没有';添加或删除项目时不更新
这是我的代码:Dart SliverList没有';添加或删除项目时不更新,dart,flutter,state,flutter-sliver,Dart,Flutter,State,Flutter Sliver,这是我的代码: class HomeCardList extends StatefulWidget { final Location location; final Position position; HomeCardList(this.location, this.position); @override _HomeCardListState createState() => _HomeCardListState(); } class _HomeCardLis
class HomeCardList extends StatefulWidget {
final Location location;
final Position position;
HomeCardList(this.location, this.position);
@override
_HomeCardListState createState() => _HomeCardListState();
}
class _HomeCardListState extends State<HomeCardList> {
List<Widget> _homeCards = [TimeDateCard(), TimeDateCard()];
@override
Widget build(BuildContext context) {
return new CustomScrollView(
slivers: <Widget>[
new LocationAppbar(
location: widget.location,
position: widget.position,
),
new SliverList(
delegate: new SliverChildListDelegate(_homeCards),
),
new SliverToBoxAdapter(
child: RaisedButton(onPressed: () {
setState(() {
_homeCards.removeLast();
});
}),
),
new SliverFixedExtentList(
delegate: new SliverChildBuilderDelegate((context, index) {
return new Text('Item #$index');
}),
itemExtent: 320.0)
],
);
}
}
它会用一个空列表刷新,这里有什么问题吗?您需要将
\u homeCards
作为一个getter,以便延迟计算,然后setState
将触发重建尝试调用setState
中的列表删除项目后,removeLast()
返回删除的项目。
setState(){
_homeCards = [];
}