我想触摸或点击小部件上的某处,而不让用户在此时明确触摸屏幕。有什么办法可以做到吗?
我已经检查了SO答案,有些人建议使用“集成测试”,但在未物理或以某种方式连接到笔记本电脑的设备上无法执行“集成测试”(无法找到更好的措辞)。
我还尝试进行 hitTest,想知道在与 UI 交互时它是否真的触摸或点击了屏幕,但似乎没有。
onPressed: () {
RenderObject? rb = context.findRenderObject();
if (rb is RenderBox){
final hit = BoxHitTestResult();
if (rb.hitTest(hit, position: Offset(300,500))){
print(hit.path);
}
}
},
另外,请正确理解这个问题,因为在我读到的有关我的查询的许多答案中,答案都是“您不需要它,只需调用函数/方法”。我想“模拟”屏幕上某个指定位置的点击,可能是根据我在代码中尝试的 X、Y 轴。
真诚地感谢您的任何指示。
如果我的问题有任何遗漏,请告诉我。
编辑:(以下是我所发现内容的更新)
我深入研究了 Flutter 代码。我找到了几个文件:
在下面flutter/src/gestures/hit_test.dart
我发现void handleEvent(PointerEvent event, HitTestEntry entry);
。我假设它消耗了PointerEvent
。进一步检查,
在下面flutter/src/gestures/events.dart
I find class PointerDownEvent extends PointerEvent
及以下flutter_test/src/test_pointer.dart
I find class TestPointer
这些文件中的任何一个都可以说明我想做的事情吗?我正在检查。
感谢@pskink,以下代码最适合我/这种情况。我已经能够按照需要制作水龙头了。非常感谢。
WidgetsBinding.instance!.handlePointerEvent(PointerDownEvent(pointer: 0, position: Offset(100, 100),)); WidgetsBinding.instance!.handlePointerEvent(PointerUpEvent(pointer: 0,position: Offset(100, 100),));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)