0

我正在使用 gwt-maps-3.8.0,因为我想将 clickhandler 和 dblclickhandler 用于同一个标记。如果我们同时使用它,它就不起作用..请参考下面我的代码..

`VerticalPanel panel = new VerticalPanel();
GoogleMap mapWidget;
LatLng myLatLng = LatLng.create(13.774252, 80.190262);
        MapOptions myOptions = MapOptions.create();
        myOptions.setZoom(8.0);
        myOptions.setCenter(myLatLng);
        myOptions.setScaleControl(true);
        myOptions.setMapTypeId(MapTypeId.ROADMAP);
        mapWidget = GoogleMap.create(panel.getElement(), myOptions);
Marker marker = Marker.create();
        marker.setMap(mapWidget);
marker.addDblClickListener(new DblClickHandler() {

            @Override
            public void handle(MouseEvent event) {
                Window.alert("Double Click");
            }
        });
        marker.addClickListener(new ClickHandler() {

            @Override
            public void handle(MouseEvent event) {
                Window.alert("Single");
            }
        });`
4

2 回答 2

1

看起来 Click (single) 处理程序将被触发。这就是正在发生的事情吗?

我怀疑当用户双击时,第一次点击会在检测到第二次点击之前触发点击事件。

我知道的唯一方法是有效地监听 ClickHandler 中的第二次点击。这是一个您可能会觉得有用的 Java 示例(不是 GWT):http: //blogs.sophiacom.fr/flex/2008/08/double-click.html

有谁知道更清洁的方法来做到这一点?

或者“如果我们同时使用它就不起作用”你的意思是标记没有出现吗?如果是这样,这可能是因为您没有设置标记位置:

marker.setPosition(myLatLng);
于 2013-02-06T12:03:41.300 回答
1

我通过在 Single Click Handler 中调用一些异步调用来做到这一点,该调用延迟并允许对同一标记进行双击处理程序。在此处检查 GWT 代码

于 2013-02-21T07:06:35.070 回答