未收到堆栈边界之外的手势响应

时间:2018-07-05 09:56:00

标签: dart flutter

我正在尝试实现一个可调整大小的小部件,该小部件的拐角处带有手柄。拐角手柄将在Stack的宽度/高度的一半处溢出。

问题:手柄的外部在内部正常工作时不会报告手势事件。

这是有意的,或者我做错了什么。如果是预期的行为,那么下一步该怎么做。

示例代码

      Widget build(BuildContext context) {
        return Scaffold(
          backgroundColor: Colors.green,
          body: Transform.translate(
            offset: boxOffset,
            child: Stack(
              overflow: Overflow.visible,
              fit: StackFit.expand,
              children: <Widget>[
                Container(
                  width: 100.0,
                  height: 100.0,
                  color: Colors.red,
                ),
                Positioned(
                  left: 100.0 - 20.0,
                  top: 100.0 - 20.0,
                  child: GestureDetector(
                    onTap: () {print("tapped");},
                    child: Container(
                      width: 80.0,
                      height: 80.0,
                      color: Colors.blue,
                    ),
                  ),
                )
              ],
            ),
          )
        );
    }

enter image description here

1 个答案:

答案 0 :(得分:0)

这是所需的行为。小部件是否可以捕获其边界之外的指针事件;容易陷入无法确定目标是哪个小部件的情况。

简而言之,不要使用溢出。重构您的布局,以确保其完全包含在其父级的边界之内。