почему поставщик не обновляет пользовательский интерфейс списка в ReorderableListView?

#flutter #dart #flutter-layout #flutter-dependencies

Вопрос:

у меня есть нижний лист с переупорядоченным списком в стеке с картами Google. Другим классом является Mystore, который расширяет Changenotifier с помощью var globalDsrCustomers в нем.

Проблема: мой пользовательский интерфейс на ReorderableListView не обновляется до тех пор, пока я не закрою и снова не открою нижний лист.

 showModalBottomSheet(
                context: context,
                isScrollControlled: true,
                backgroundColor: Colors.transparent,
                builder: (context) => Container(
                  height: MediaQuery.of(context).size.height * 0.5,
                  decoration: new BoxDecoration(
                    color: Colors.white,
                    borderRadius: new BorderRadius.only(
                      topLeft: const Radius.circular(25.0),
                      topRight: const Radius.circular(25.0),
                    ),
                  ),
                  child: Padding(
                    padding: const EdgeInsets.all(8.0),
                    child: ReorderableListView(
                      physics: BouncingScrollPhysics(),
                      header: CupertinoNavigationBar(
                          leading: Container(), middle: Text('Shops Locations'),),
                      shrinkWrap: true,
                      scrollController: ModalScrollController.of(context),
                      children: [

                        for (int i = 0;
                        i < myStore.globalDsrCustomers.length;
                        i  )
                          ListTile(
                            key:  ValueKey(myStore.globalDsrCustomers[i]),
                            title: Text(
                                '${myStore.globalDsrCustomers[i].customerAddress}'),
                            leading: CircleAvatar(
                              child: Text("$i"),
                            ),
                            trailing: Icon(
                              Icons.format_list_bulleted_outlined,
                              color: Colors.black,
                              size: 28,
                            ),
                          ),
                      ],
                      onReorder: myStore.reorderItems,
                    ),
                  ),
                ),
              );
 

теперь вызов метода переупорядочения из ReorderableListView выполняется, но не обновляет пользовательский интерфейс. закрытие и повторное открытие нижнего листа обновляет пользовательский интерфейс.

 reorderItems(int oldindex, int newindex) {
    print('newindex: $newindex oldindex: $oldindex');
    if (newindex > oldindex) newindex = newindex - 1;


    final item = globalDsrCustomers.removeAt(oldindex);
    final item1 = globalDsrCustomers.removeAt(newindex);

    globalDsrCustomers.insert(newindex, item);
    globalDsrCustomers.insert(oldindex, item1);

    notifyListeners();
    addTemporaryAllMarkers();
  }
 

Идеальный случай: если следовать некоторым основным примерам из Интернета, все работает нормально. idk, если проблема связана с поставщиком или с reorderablelistview.