标记GWT映射V3 clickhandler和dblclickhandler
我正在使用gwt-maps-3.8.0,因为我想对同一个标记同时使用clickhandler和dblclickhandler。如果我们两者都用,那就行不通了。。请参考下面我的代码标记GWT映射V3 clickhandler和dblclickhandler,gwt,google-maps-api-3,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 = MapOption
`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");
}
});`
看起来单击(单个)处理程序将被触发。这就是正在发生的事情吗
我怀疑当用户双击时,第一次单击会在检测到第二次单击之前触发单击事件
我知道的唯一方法是有效地监听ClickHandler中的第二次单击。下面是一个Java示例(不是GWT),您可能会发现它很有用:
有人知道更干净的方法吗
或者说“如果我们同时使用这两种标记,它将不起作用”,你的意思是标记没有出现吗?
如果是,这可能是因为您尚未设置标记位置:
marker.setPosition(myLatLng);
我是通过在单击处理程序中调用一些异步调用来实现的,它会延迟并允许对同一标记进行双击处理。选中GWT代码是,每次都会触发单击处理程序。。。将尝试在GWT中更改这一点。无论如何,谢谢你的建议。