当前位置: 首页 > 知识库问答 >
问题:

android onMarkerClick InfoWindo后不叫

廉飞捷
2023-03-14

我将谷歌地图Android API v2集成到我的应用程序中,在谷歌地图中使用标记时出现了奇怪的行为。隐藏InfoWindow后不调用onmarkercliclistener # onMarkerClick(Marker Marker)。它不依赖于我如何显示InfoWindow(既不是marker.showInfoWindow()也不是

@Override
public boolean onMarkerClick(final Marker marker) {
.....
return true;} 

不起作用。通过触摸或更改变焦更改相机位置后,它一次工作。我在GoogleMapDemo中看到的相同行为。

这是我的代码

    private GoogleMap mMap;

@Override
protected void onCreate(Bundle icicle) {
    super.onCreate(icicle);

    setContentView(R.layout.map_address_activity);
    setUpMapIfNeeded(); // from oficial sample

    mMap.setOnMapClickListener(new OnMapClickListener() {

        @Override
        public void onMapClick(LatLng point) {
            mMap.clear();
            mMap.addMarker(new MarkerOptions().position(point).title("Marker"));
            final CameraPosition cameraPosition = new CameraPosition.Builder().target(point).zoom(mMap.getCameraPosition().zoom).build();

            mMap.animateCamera(CameraUpdateFactory.newCameraPosition(cameraPosition));
        });
    mMap.setOnMarkerClickListener(new OnMarkerClickListener() {

        @Override
        public boolean onMarkerClick(final Marker marker) {
        Log.e("TESTING", "on Marker click: " + marker.getTitle());
            if (!marker.isInfoWindowShown())
                marker.showInfoWindow();
            else 
                marker.hideInfoWindow();

            return true;
        }
    });
}

你能帮我在隐藏信息窗口后处理标记上的点击事件吗?

共有1个答案

龚钧
2023-03-14

这就是应该发生的事!只有在单击标记时才会调用onMarkerClick,但在信息窗口隐藏时不会调用。

如果要侦听 InfoWindows 隐藏事件,则必须在 onMarkerClick methode 中实现自己的逻辑,其中隐藏InfoWindow 或在覆盖的 onMapClick methode 中实现自己的逻辑(因为单击地图上的任何位置都可以隐藏信息)。在最后一种情况下,您必须使用激活的infoWindow将引用保留在最后一个标记上,并检查该窗口状态以实现您的逻辑。

 类似资料:
  • 问题内容: 我正在尝试进行变量替换,同时也使它可以通过ngClick单击。 我做了一个小矮人演示(单击按钮,观察输入框保持不变) 标记: 角度的东西: 问题是:为什么单击按钮时不触发。应该在输入字段中设置值’foobar’。 问题答案: 同时,有一个针对该问题的官方解决方案: 无需编写自定义指令即可进行编译。 有关更多信息:https : //github.com/angular-translat

  • seafile支持在文件系统、s3、ceph、swift、阿里云oss等存储后端之间互相迁移数据(swift暂不支持迁出), 如果你启用了存储后端加密的功能,目前是不能进行数据迁移的。 在不同后端迁移数据需要三个步骤: 1.新建临时 seafile.conf 文件 2.运行迁移脚本 3.替换 seafile.conf 新建临时 seafile.conf 文件 创建一个新的 seafile.conf

  • 为什么“after”在ucannacess ALTER table中不支持? 我想在存在列表的位置添加列;使用数据库 例外 net.ucanaccess.jdbc.ucanaccesssqlexception:UCAEXC:::4.0.4java.sql.sqlsyntaxerrorexception:意外标记:AFTER

  • 我把SonarQube升级到了4.2,现在Jenkins不工作了。T.T Jenkins和SonarQube安装在同一台服务器上,我使用的是mysql。此外,SonarQube的Jenkins设置指向mysql数据库。 ... 詹金斯的Maven版本是3.0.5 我没有在java项目中设置声纳maven插件。 它与声纳3.4.1工作正常,我没有改变詹金斯更新SonarQube后的任何设置。 这里是

  • 这是一个类似的问题,但提出的解决方案不起作用:安装后没有找到命令'gulp'

  • 问题内容: 我正在从表单组件获取数据,并尝试使用此数据设置应用程序组件的状态。 但是,state.data是一个空对象,不会更新数据。在设置模型数据是否存在之前,我会控制台记录模型数据。他们是模型中的数据。 问题答案: 是React中的异步调用。因此,您不太可能在下一行获得更新的状态值。要在状态更新成功后检查更新后的值,可以签入回调处理程序。 改变这个 至