Flutter 如何刷新由小部件列表生成的listview.builder
这里的会议列表是一个NewWidget的列表。 我使用_meetinglist[索引]创建了listview.builder 现在,当一个新的小部件添加到列表中时,如何刷新listview.builder 在这里,当我渲染所有屏幕时,listviewbuilder会刷新,就像回到屏幕一样。但是当我向列表中添加新的小部件时,我想刷新listviewbuilderFlutter 如何刷新由小部件列表生成的listview.builder,flutter,dart,Flutter,Dart,这里的会议列表是一个NewWidget的列表。 我使用_meetinglist[索引]创建了listview.builder 现在,当一个新的小部件添加到列表中时,如何刷新listview.builder 在这里,当我渲染所有屏幕时,listviewbuilder会刷新,就像回到屏幕一样。但是当我向列表中添加新的小部件时,我想刷新listviewbuilder class MeetingWidget extends StatefulWidget { final List meetingdet
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(),
));
}
}
class MeetingWidget扩展了StatefulWidget{
最后名单会议详情;
功能会议;
MeetingWidget({this.meetingdetails,this.addMeeting,Key})
:super(key:key);
@凌驾
状态createState(){
//TODO:实现createState
return MeetingWidgetState();
}
}
类MeetingWidgetState扩展了状态{
列表_会议列表=[];
Map _userjson=Map();
var booly=false;
@凌驾
小部件构建(构建上下文){
globals.customerUsers.forEach((custuser){
if(custuser['Name']==null | | custuser['Name']==''){
_userjson[custuser['id'].toString()]=custuser['userName'];
}否则{
_userjson[custuser['id'].toString()]=custuser['Name'];
}
});
widget.meetingdetails.asMap().forEach((索引,任务){
如果(任务['task']=='Meeting'){
_meetinglist.add(NewWidget(
键:UniqueKey(),
布莉:布莉,
索引:索引,,
addMeeting:widget.addMeeting,
已完成:任务[“任务状态”],
任务1:任务['task_title'],
meetinglist:widget.meetingdetails,
任务3:任务['task_date']['datetext'],
dateValue:tasks['task_date']['date'],
taskAssign:tasks['task\u assign\u to\u id'].toString(),
任务4:任务['task_date']['time12'],
));
}
});
return\u meetinglist.isEmpty
?容器(
儿童:中心(
子:文本(
“未添加任何会议”,
样式:TextStyle(
fontFamily:“罂粟花”,
fontWeight:fontWeight.w600,
尺寸:12,
颜色:平台蓝),
)))
:刷新指示器(
onRefresh=\u refresh,
ListView.builder(
itemCount:_meetinglist.length,
itemBuilder:(BuildContext上下文,int索引)=>
_会议名单[索引],
填充:仅限边缘设置(底部:60),
物理:弹跳CrollPhysics(),
));
}
}
您是否遗漏了某个设置状态()。不…实际上listview.builder正在使用_MeetingList中的小部件列表。您是否遗漏了某个setState()
。不…实际上listview.builder正在使用会议列表中的小部件列表