Android Flatter-可重排序列表,其中Listview嵌套在ExpansionFile中
我正在尝试构建一个具有可重排序listview的示例,该示例的子级是扩展磁贴。 展开互动程序后,它将向用户显示一个listview,如下所示 当所有扩展磁贴都折叠时,我可以通过长时间按住并移动它来重新排列磁贴。但是,如果其中一个磁贴被展开,并且用户尝试重新排序磁贴,flifter将抛出以下错误,并且展开的磁贴在热重新加载之前将无法折叠Android Flatter-可重排序列表,其中Listview嵌套在ExpansionFile中,android,listview,flutter,dart,reorderable-list,Android,Listview,Flutter,Dart,Reorderable List,我正在尝试构建一个具有可重排序listview的示例,该示例的子级是扩展磁贴。 展开互动程序后,它将向用户显示一个listview,如下所示 当所有扩展磁贴都折叠时,我可以通过长时间按住并移动它来重新排列磁贴。但是,如果其中一个磁贴被展开,并且用户尝试重新排序磁贴,flifter将抛出以下错误,并且展开的磁贴在热重新加载之前将无法折叠 ScrollController attached to multiple scroll views. 'package:flutter/src/widgets
ScrollController attached to multiple scroll views.
'package:flutter/src/widgets/scroll_controller.dart':
Failed assertion: line 111 pos 12: '_positions.length == 1'
我该如何着手修理它?问题似乎源于将一个滚动控制器嵌套在另一个滚动控制器中。有没有办法迫使所有的膨胀砖在长时间挤压后倒塌?
提前谢谢
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()),
),
),
);
列表a=[1,2,3];
类_BlankPageState扩展状态{
@凌驾
小部件构建(构建上下文){
返回安全区(
孩子:脚手架(
主体:填充物(
填充:边缘设置。全部(10),
子:ReorderableListView(
onReorder:(旧索引,新索引){
打印(“现在”);
设定状态(
() {
如果(新建索引>旧索引){
newIndex-=1;
}
最终整数项=a.removeAt(旧索引);
a、 插入(新索引,项目);
},
);
},
子项:a.map((索引){
返回扩展文件(
背景颜色:颜色。灰色,
key:key(“$index”),
标题:文本('Tile'+'${index.toString()}'),
儿童:[
容器(
身高:100,
子项:列表视图(子项:[
Text('这是一个测试'+'$index'),
Text('这是一个测试'+'$index'),
]),
)
],
);
}).toList()),
),
),
);
我能够通过新版本的颤振1.17解决上述问题,该版本引入了以下内容
颤振1.17.0的更改日志
49148在ReorderableListView中公开了可选的scrollController属性
通过在我的reorderablelistview中添加滚动控制器,当列表视图嵌套在reorderablelistview小部件中时,我不再遇到上面的多个滚动视图错误
ReorderableListView(
scrollController: ScrollController(initialScrollOffset: 50),