当前位置: 首页 > 知识库问答 >
问题:

如何在HarmonyOS中检测自定义组件中的双击?

严升
2023-03-14

我正在使用Java SDK在HarmonyOS中创建一个自定义组件,在那里我必须双击一些任务。但我无法检测到双击事件。

在Android中,借助GestureDetector类,我们可以检测双击事件,如下所示:

GestureDetector gestureDetector = new GestureDetector(context, new GestureDetector.SimpleOnGestureListener(){
            @Override
            public boolean onSingleTapConfirmed(MotionEvent e) {
                return super.onSingleTapConfirmed(e);
            }

            @Override
            public boolean onDoubleTap(MotionEvent e) {
                return super.onDoubleTap(e);
            }
        });

在HMOS中,我尝试使用Component.TouchEventListener检测双击,如下所示:

Component.TouchEventListener touchEventListener = new TouchEventListener() {
            @Override
            public boolean onTouchEvent(Component component, TouchEvent touchEvent) {
                if(touchEvent.getPointerCount() == 1) {
                    LogUtil.info(TAG, "single click detected");
                }

                if(touchEvent.getPointerCount() == 2) {
                    LogUtil.info(TAG, "double click detected");
                }
                return false;
            }
        };

但是,它没有检测到双击。在双击也有打印单点击检测。

共有1个答案

阴英武
2023-03-14

尝试注册Component.DoubleClickedListener,您将能够在自定义组件中检测双击,示例用法

    customComponent.setDoubleClickedListener(new Component.DoubleClickedListener() {
                @Override
                public void onDoubleClick(Component component) {
                    LogUtil.info(TAG, "double click detected");
                }
            });
 类似资料:
  • 如何自定义Video组件控制栏样式

  • 我有:我在水平滚动视图中有一组按钮 我想要的:我想要在双击按钮时检测事件 注意通常我处理点击事件使用.但是现在我怎么能实现同样的双击。如果有任何界面我也可以用于此目的,这将是有帮助的

  • 我在camel Kafka starter依赖项中使用了一个Kafka组件。在这个问题中,建议我使用“定制器”。我将如何在spring boot应用程序中使用它?

  • 单击显示Hello消息应加载主页上显示“Hello”消息的Hello组件。 单击“显示产品1”应加载对其进行自定义,使其显示“产品1工作!”消息 单击“显示产品2”应再次加载,但这次对其进行自定义,以显示“产品2工作!”。 如何实现此功能?以下是Stackblitz项目的链接: https://stackblitz.com/edit/angular-ivy-qkparn?file=src/app/

  • 我刚刚用打字稿开始了一个新的反应项目,在功能组件中定义自定义道具时遇到了困难。 我查找了如何定义自定义道具,并找到了一种定义接口的方法,该接口详细描述了我传递给函数的道具类型,但是当我试图在我的主应用程序上运行它时,我得到一个错误消息 类型“{ digit: number; }”不能分配给类型“IntrinsicAttributes”。属性“数字”在类型“内部属性”上不存在。TS2322 我的代码

  • 问题内容: 我知道我可以检查是否有鼠标左键 但是如何检查他们是否双击了?还有什么方法可以检查用户是否向前或向后移动了滚轮? 问题答案: 我从未使用过-但是: 检测双击: 猜测一下,而不是立即处理每次单击,而是施加50ms的延迟,然后查看您在该时间是否收到另一个单击事件。用户可能不会注意到50ms的延迟。 区分上/下滚轮: 请参阅此文档页面上的注释。显然,定义了五个按钮-左,中,右,上滚轮和下滚轮。