Я пытаюсь создать пример с переупорядочиваемым списком, у которого плитка расширения является дочерней. После развертывания тайла пользователю будет предоставлен просмотр списка следующим образом: Расширенная плитка со списком, вложенным в
Когда все листы расширения свернуты, у меня нет проблем с переупорядочением плиток при длительном нажатии. и двигая это. Но если одна из плиток развернута, и пользователь попытается изменить порядок плиток, флаттер выдаст следующую ошибку, и развернутая плитка не сможет свернуться до горячей перезагрузки
ScrollController attached to multiple scroll views.
'package:flutter/src/widgets/scroll_controller.dart':
Failed assertion: line 111 pos 12: '_positions.length == 1'
Не складывается listview
Как мне go исправить это? Кажется, проблема связана с тем, что контроллер прокрутки вложен в другой контроллер прокрутки. Есть ли способ заставить всю плитку расширения разрушаться при длительном нажатии на нее? Заранее спасибо
List<int> a = [1, 2, 3];
class _BlankPageState extends State<BlankPage> {
@override
Widget build(BuildContext context) {
return SafeArea(
child: Scaffold(
body: Padding(
padding: EdgeInsets.all(10),
child: ReorderableListView(
onReorder: (oldIndex, newIndex) {
print('now');
setState(
() {
if (newIndex > oldIndex) {
newIndex -= 1;
}
final int item = a.removeAt(oldIndex);
a.insert(newIndex, item);
},
);
},
children: a.map((index) {
return ExpansionTile(
backgroundColor: Colors.grey,
key: Key('$index'),
title: Text('Tile' + '${index.toString()}'),
children: <Widget>[
Container(
height: 100,
child: ListView(children: <Widget>[
Text('This is a test' + '$index'),
Text('This is a test' + '$index'),
]),
)
],
);
}).toList()),
),
),
);