Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/219.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android Flatter-可重排序列表,其中Listview嵌套在ExpansionFile中_Android_Listview_Flutter_Dart_Reorderable List - Fatal编程技术网

Android Flatter-可重排序列表,其中Listview嵌套在ExpansionFile中

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

我正在尝试构建一个具有可重排序listview的示例,该示例的子级是扩展磁贴。 展开互动程序后,它将向用户显示一个listview,如下所示

当所有扩展磁贴都折叠时,我可以通过长时间按住并移动它来重新排列磁贴。但是,如果其中一个磁贴被展开,并且用户尝试重新排序磁贴,flifter将抛出以下错误,并且展开的磁贴在热重新加载之前将无法折叠

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),