标记GET映射V3单击处理程序和dblclick处理程序

时间:2013-02-06 08:54:37

标签: gwt google-maps-api-3

我正在使用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");
            }
        });`

2 个答案:

答案 0 :(得分:1)

看起来会触发Click(单个)处理程序。那是怎么回事?

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

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

有谁知道更清洁的方法吗?

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

marker.setPosition(myLatLng);

答案 1 :(得分:1)

我在单击处理程序中调用了一些异步调用,延迟并允许双击处理程序用于相同的标记。检查GWT代码Here