_meetinglist是NewWidget的列表。 我使用_meetinglist [index]创建了listview.builder 现在,将NewWidget添加到列表中后,如何刷新listview.builder ...
这里,当我渲染所有屏幕时,都会刷新listviewbuilder,例如返回并再次回到屏幕。.但是当我向该列表添加新的NewWidget eidget时,我想刷新listviewbuilder。
class MeetingWidget extends StatefulWidget {
final List meetingdetails;
Function addMeeting;
MeetingWidget({this.meetingdetails, this.addMeeting, Key key})
: super(key: key);
@override
State<StatefulWidget> createState() {
// TODO: implement createState
return MeetingWidgetState();
}
}
class MeetingWidgetState extends State<MeetingWidget> {
List<NewWidget> _meetinglist = [];
Map _userjson = Map();
var booly = false;
@override
Widget build(BuildContext context) {
globals.customerUsers.forEach((custuser) {
if (custuser['Name'] == null || custuser['Name'] == '') {
_userjson[custuser['id'].toString()] = custuser['userName'];
} else {
_userjson[custuser['id'].toString()] = custuser['Name'];
}
});
widget.meetingdetails.asMap().forEach((index, tasks) {
if (tasks['task'] == 'Meeting') {
_meetinglist.add(NewWidget(
key: UniqueKey(),
booly: booly,
index: index,
addMeeting: widget.addMeeting,
completed: tasks['task_status'],
tasks1: tasks['task_title'],
meetinglist: widget.meetingdetails,
tasks3: tasks['task_date']['datetext'],
dateValue: tasks['task_date']['date'],
taskAssign: tasks['task_assign_to_id'].toString(),
tasks4: tasks['task_date']['time12'],
));
}
});
return _meetinglist.isEmpty
? Container(
child: Center(
child: Text(
"No meetings Added",
style: TextStyle(
fontFamily: 'Poppins',
fontWeight: FontWeight.w600,
fontSize: 12,
color: platformblue),
)))
: RefreshIndicator(
onRefresh = _refresh,
ListView.builder(
itemCount: _meetinglist.length,
itemBuilder: (BuildContext context, int index) =>
_meetinglist[index],
padding: EdgeInsets.only(bottom: 60),
physics: BouncingScrollPhysics(),
));
}
}