gpt4 book ai didi

Flutter PointerEvent 与 OnTap,一个有效,另一个无效

转载 作者:行者123 更新时间:2023-12-05 03:54:10 24 4
gpt4 key购买 nike

我有一个我正在尝试创建的堆栈小部件,其中:1. 用户触摸小部件按钮触发 pointerDown 事件。2. 指针向下导致 slider 类型小部件从按钮后面从 0 缩放到 100%3. 手指仍然向下,用户拖动以选择刻度上的一个值4. 通过从屏幕上松开手指来选择值,即 pointerUp。

当我在步骤 1 中使用 onTap 而不是 pointerDown 时,小部件工作正常。但是当我尝试使用指针向下事件时,不会触发 _open 方法(管理 slider 的 scaleUp)。

我几乎完全遵循了这个例子:https://fireship.io/lessons/flutter-radial-menu-staggered-animations/ ,但已尝试像这样更改 floatingActionbuton 上的触摸事件:

  Transform.scale(
scale: widget.scale.value,
child: Listener(
onPointerDown: (PointerDownEvent event) {
print('pointer is down');
setState(() {
_open;
});
},
child: FloatingActionButton(child: Icon(Icons.blur_circular), onPressed: () {})),
)

打印部分检测并触发事件,但 _open 方法不执行任何操作,菜单部分也没有像教程链接中那样出现。

我很茫然。

最佳答案

由于 FloatingActionButton 下方的按钮也有一个监听器,因此 Listener 小部件不会获取 PointerDown 事件。因此,要做到这一点,您必须将行为更改为 opaque,以便两者都能获得事件。

尝试这样的事情:

Listener(
behavior: HitTestBehavior.opaque,
onPointerDown: (PointerDownEvent details){

},
child: ...,
)

关于Flutter PointerEvent 与 OnTap,一个有效,另一个无效,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/61232028/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com