#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.