可拖动的小部件阻止滚动手势

时间:2020-01-29 14:17:46

标签: flutter dart scroll draggable gesture

我有一个像下面这样的树结构,基本上是Row内的SingleChildScrollView,其中Row的子代是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似乎正在消耗任何手势,因此,在点击(在这种情况下为长按)时,拖动效果有效,但是似乎没有其他手势起作用,因此基本上滚动不响应。 / p>

我尝试使用常规的Draggable代替LongPressDraggable并使用affinity属性,但是即使那样,滚动也不会响应,只是拖动。

有什么帮助或建议吗?

1 个答案:

答案 0 :(得分:0)

对于其他处理此问题的人(最终是愚蠢的情况)....

事实证明,问题并非来自Draggable 本身。....

由于某种原因,将SingleChildScrollView放在Positioned内可防止其滚动...。

找到了此错误的线索:bug report

因此,该错误中提出的关于为Positioned的top,bottom,left,left和right属性赋予双精度值的解决方案对我来说效果不佳。

所以...我使用完全相同的代码解决了这个问题,但是使用Align小部件而不是Positioned