【发布时间】:2021-11-27 20:22:54
【问题描述】:
我有一个相对复杂的 Listview 设置,其中一个 Listview 充当水平 Listview 的滚动父级,而后者充当第三个垂直 Listview 的父级。
这是布局总体思路的图片:https://cdn.discordapp.com/attachments/752981111738466467/895739370227773480/IMG_20211007_142732.jpg。
我无法滚动中间的 Listview,即水平 Listview(图中标记为 2)。
ConstrainedBox(
constraints: BoxConstraints(...),
child: ListView.builder( // This is Listview 1
controller: ScrollController(),
itemCount: itemCount,
itemBuilder: (context, worldIndex) {
return ConstrainedBox(
constraints: BoxConstraints(...),
child: ListView.builder( // This is Listview 2
controller: ScrollController(),
itemCount: ...,
scrollDirection: Axis
.horizontal, // grows horizontally to show the hierarchy of one card (the card selected in the hierarchy above it, or for the first level, the world) to its children
itemBuilder: (context, index) {
...
return ConstrainedBox(
constraints: BoxConstraints(...),
child: Padding(
padding: const EdgeInsets.all(4.0),
child: Container(
decoration: ...,
),
child: ListView.builder( // This is Listview 3
controller: ScrollController(),
itemCount: getNumChildren(index),
itemBuilder: (context, index2) {
return ...;
}),
)));
}));
}));
为简洁起见,我删除了我的代码的几个部分并用省略号替换它们。我认为这些区域中的任何一个都不会导致 Listview 出现任何问题,但如果可能的话,请告诉我。
编辑:除了水平 Listview 不滚动之外,我的代码已经正常工作。我的解决方案需要在树的每个级别(例如,图像中的 1、2 和 3)都有一个可动态扩展的 Listview。主要目标平台是 Windows。
我假设该问题涉及 Listview 赢得 GestureArena 的问题,但我目前不知道如何解决该问题,提供一种滚动所有可用 Listview 的方法。
提前感谢您,希望您有美好的一天!
【问题讨论】:
-
FWIW - 如果您的目标是网络:我有一个类似的设置,其中包含用于 SPA 的嵌套滚动,并且无法让滚动与 canvaskit 渲染器一起使用,但是它与预期的一样与html 渲染器。 flutter.dev/docs/development/tools/web-renderers
标签: flutter flutter-layout flutter-windows