【问题标题】:ReorderableListView inside SingleChildScrollView/ColumnSingleChildScrollView/Column 内的 ReorderableListView
【发布时间】:2020-05-06 05:47:34
【问题描述】:
我需要将我的可重新排序列表放在 SingleChildScrollView 中,但 ReorderableListView() 没有像 ListView() 那样的收缩包装。是否有一种解决方法可以在不使用过时的未维护包的情况下完成此布局?虽然,我还没有测试过那些可用的过时包,但我不知道它们是使用不同的小部件构建的,还是只是基于 ReorderableListView() 构建的,如果这样,错误将持续存在。
【问题讨论】:
标签:
flutter
dart
flutter-layout
【解决方案1】:
您可以在 Column 中使用 Expanded Widget 包装您的 ReorderableListView。
【解决方案2】:
对我来说,我在 ScrollView 中的 Column 中使用了 Reorderable Listview。
尝试了多种组合,但出现了错误,所以我只是将 ListView 的每个 ListTile 包装在一个容器中,它对我有用。如果这不起作用,请尝试限制每个容器的高度。
【解决方案3】:
flutter 团队最近发布了 2.0.1 稳定版,它附带了一个新设计的 ReorderableList 类。经过我的测试,ReorderableList 类可以顺利使用 Column 和 SingleChildScrollView。
代码 sn-p 喜欢:
SingleChildScrollView(
child: Column(
children: [
ReorderableList(
controller: ScrollController(),
shrinkWrap: true,
itemCount: itemList.length,
itemBuilder: (BuildContext context, int index) {
final item = itemList[index];
return ReorderableDelayedDragStartListener(
index: index,
key: UniqueKey(),
ListTile(...),
);
},
onReorder: (int oldIndex, int newIndex) {...},
),
],
),
);