如何刷新由小部件列表制成的listview.builder

时间:2020-05-28 12:50:23

标签: flutter dart

_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(),
          ));
  }
}

0 个答案:

没有答案