可拖动的小部件阻止滚动手势
Draggable widget blocks scroll gesture
我有一个像下面这样的树结构,基本上是 SingleChildScrollView
里面的 Row
,其中 Row
的 children 是 Draggables
。
Positioned(
top: 250,
left: 30,
child: Container(
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: initialState.map((f) => LongPressDraggable(
child: f,
feedback: Transform.scale(scale: 0.4, child: f),
childWhenDragging: Container(),
)).toList(),
),
),
),
),
问题是 Draggable 似乎在消耗任何手势,因此,当点击(在本例中为长按)时,拖动效果起作用,但似乎没有其他手势起作用,所以基本上滚动不响应.
我尝试使用常规的 Draggable 而不是 LongPressDraggable,并使用 affinity
属性,但即使这样,滚动也没有响应,只有拖动。
有什么帮助或建议吗?
对于处理此问题的任何其他人(最后是愚蠢的情况)....
事实证明,问题并非来自 Draggable
本身......
出于某种原因,将 SingleChildScrollView
放在 Positioned
中可以防止滚动....
在这个bug中找到了线索:bug report
因此,在错误中提出的关于为 Positioned
的顶部、底部、左侧、右侧属性赋予双精度值的解决方案对我来说效果不佳。
所以...我使用完全相同的代码解决了它,但是 使用 Align
小部件而不是 Positioned
。
我有一个像下面这样的树结构,基本上是 SingleChildScrollView
里面的 Row
,其中 Row
的 children 是 Draggables
。
Positioned(
top: 250,
left: 30,
child: Container(
child: SingleChildScrollView(
scrollDirection: Axis.horizontal,
child: Row(
mainAxisAlignment: MainAxisAlignment.spaceBetween,
children: initialState.map((f) => LongPressDraggable(
child: f,
feedback: Transform.scale(scale: 0.4, child: f),
childWhenDragging: Container(),
)).toList(),
),
),
),
),
问题是 Draggable 似乎在消耗任何手势,因此,当点击(在本例中为长按)时,拖动效果起作用,但似乎没有其他手势起作用,所以基本上滚动不响应.
我尝试使用常规的 Draggable 而不是 LongPressDraggable,并使用 affinity
属性,但即使这样,滚动也没有响应,只有拖动。
有什么帮助或建议吗?
对于处理此问题的任何其他人(最后是愚蠢的情况)....
事实证明,问题并非来自 Draggable
本身......
出于某种原因,将 SingleChildScrollView
放在 Positioned
中可以防止滚动....
在这个bug中找到了线索:bug report
因此,在错误中提出的关于为 Positioned
的顶部、底部、左侧、右侧属性赋予双精度值的解决方案对我来说效果不佳。
所以...我使用完全相同的代码解决了它,但是 使用 Align
小部件而不是 Positioned
。