Google Maps API v2: How to make markers non-clickable?

孤街醉人 提交于 2019-11-27 06:00:07

问题


I mean if i click marker OnMarkerClickListener is called, so the OnMapClickListener did not. Even if i set mMap.setOnMarkerClickListener(null); marker object still masks all click events for underlying map and objects. How can i set Marker transparent for all user interractions?


回答1:


This is indeed a "limitation" of markers as of 3.1.59 version of the library.

If you really need them to be markers, please post a feature request on gmaps-api-issues for MarkerOptions.clickable and Marker.setClickable.

If you can, consider using other visual objects, e.g. GroundOverlay. The only problem is they all scale with map, unlike markers. The closest would be Circle with zero radius and 20-50 dp stroke width, but that's only a single color dot.




回答2:


According to the docs about markers, if you add your own Listener and the onMarkerClick() method returns false, the default behaviour will be executed.

So, in the onMarkerClick() just return true and do nothing else to completely overwrite the default.




回答3:


The only workaround I found for this issue is to execute the same code in OnMarkerClickListener that you have in OnMapClickListener and return false:

getMap().setOnMarkerClickListener(new OnMarkerClickListener() {

    public boolean onMarkerClick(Marker marker) {
        onMapClick(marker.getPosition());
        return true;
    }
});



回答4:


You can skip setting Marker.Title and in this case the marker won't be clickable. Use Marker.Tag if you need to associate some data (like id or name) with the marker without an ability for end-user to tap and see that.



来源:https://stackoverflow.com/questions/17884401/google-maps-api-v2-how-to-make-markers-non-clickable

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!