我有航班和价格数据。从波纹管中可以看到,我创建了Flight
和Price
类来保存此数据。 Search result
类用作容器(结果)来保存相关联的航班inbound
和outbound
的价格。
class SearchResult {
Flight inbound, outbound;
Price price;
SearchResult(this.inbound, this.outbound, this.price);
}
class Flight{
var flightDuration;
var departureAirportName;
var arrivalAirportName;
...
}
class Price{
double totalAmount;
}
在这里,我创建了SliverList来显示结果。 JourneyResult
只是一个小部件,可根据获取的数据创建外观。
如果用户滑动并删除,我想删除一个listTile。在这种情况下,我想删除索引0中的inbound
。为此,我将其设置为null
,但得到getter was call on null on flightDuration, ...
。我将childCount
设置为1是因为我只想显示第一个索引,因为我只想显示第一个索引中的数据。如果用户决定删除inbound
详细信息,我想删除。我不知道为什么我将childCount
设置为1后再次调用它。
如何从listTile中删除inbound
数据?
List<SearchResult> searchResult = [];
//inbound result
StatefulBuilder(
builder: (innerContext, innerSetState) => SliverList(
delegate: SliverChildBuilderDelegate(
(context, i) => ListTile(
title: Slidable(
actionPane: SlidableDrawerActionPane(),
actionExtentRatio: 0.25,
child: new JourneyResult(
0xe195,
searchResult[0]
.inbound
.departureAirportName,
searchResult[0]
.inbound
.arrivalAirportName,
searchResult[0]
.inbound
.flightDuration,
searchResult[0].price.totalAmount ),
secondaryActions: <Widget>[
IconSlideAction(
caption: 'Remove',
color: Colors.red,
icon: Icons.delete,
onTap: () {
innerSetState(() {
searchResult[0].inbound
=null;
});
},
),
],
),
),
childCount: 1,
),
),
),
//outbound result
StatefulBuilder(....)