如何在不覆盖默认行为的情况下扩展 OSMbonuspacket 标记的 setOnMarkerClickListener?
How to expand setOnMarkerClickListener of OSMbonuspacket Marker without overriding default behavior?
我正在开发一个使用 OSMbonuspacket 的应用程序。我在地图上添加了带有描述的标记。单击其中一个标记时,将显示说明框。
现在我想在点击标记时调用另一个函数。假设我想展示一个吐司。所以我添加了以下 setOnMarkerClickListener()
函数:
marker.setOnMarkerClickListener(new Marker.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker, MapView mapView) {
Toast.makeText(context, "Hallo", Toast.LENGTH_LONG).show();
return false;
}
});
这会在单击标记时显示 Toast。但是,描述框不再显示。我想我正在覆盖默认行为。有了这个功能。我制作了一个带有 Google 地图集成的应用程序并且做了同样的事情没有任何问题。
有谁知道如何使用 OSMbonuspacket 完成此操作?
osmdroid 中 Marker 的默认点击监听器如下所示:
protected boolean onMarkerClickDefault(Marker marker, MapView mapView) {
marker.showInfoWindow();
if(marker.mPanToView) {
mapView.getController().animateTo(marker.getPosition());
}
return true;
}
因此,您可以像这样覆盖您的侦听器:
marker.setOnMarkerClickListener(new Marker.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker, MapView mapView) {
marker.showInfoWindow();
mapView.getController().animateTo(marker.getPosition());
Toast.makeText(context, "Hallo", Toast.LENGTH_LONG).show();
return true;
}
});
我正在开发一个使用 OSMbonuspacket 的应用程序。我在地图上添加了带有描述的标记。单击其中一个标记时,将显示说明框。
现在我想在点击标记时调用另一个函数。假设我想展示一个吐司。所以我添加了以下 setOnMarkerClickListener()
函数:
marker.setOnMarkerClickListener(new Marker.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker, MapView mapView) {
Toast.makeText(context, "Hallo", Toast.LENGTH_LONG).show();
return false;
}
});
这会在单击标记时显示 Toast。但是,描述框不再显示。我想我正在覆盖默认行为。有了这个功能。我制作了一个带有 Google 地图集成的应用程序并且做了同样的事情没有任何问题。
有谁知道如何使用 OSMbonuspacket 完成此操作?
osmdroid 中 Marker 的默认点击监听器如下所示:
protected boolean onMarkerClickDefault(Marker marker, MapView mapView) {
marker.showInfoWindow();
if(marker.mPanToView) {
mapView.getController().animateTo(marker.getPosition());
}
return true;
}
因此,您可以像这样覆盖您的侦听器:
marker.setOnMarkerClickListener(new Marker.OnMarkerClickListener() {
@Override
public boolean onMarkerClick(Marker marker, MapView mapView) {
marker.showInfoWindow();
mapView.getController().animateTo(marker.getPosition());
Toast.makeText(context, "Hallo", Toast.LENGTH_LONG).show();
return true;
}
});