Как обновить sh listview.builder из списка виджетов - PullRequest
1 голос
/ 28 мая 2020

Здесь _meetinglist - это список NewWidget. Я создал listview.builder, используя _meetinglist [index]. Как я могу обновить sh listview.builder, когда NewWidget добавлен в список ...

Здесь listviewbuilder refre sh когда я отобразить весь экран, например, вернуться и снова вернуться к экрану ... но я хочу обновить sh конструктор списка, когда я добавляю новый виджет NewWidget в этот список

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