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

Android和Google地图-关闭带有后退按钮的信息窗口

苏硕
2023-03-14

我有一个活动,持有一个片段与谷歌地图视图在其中。应用程序向MapView添加了几十个标记,使用MarkerManager和ClusterRenderer来形成集群。

问题是,当我打开Marker的InfoWindow并按下硬件后退按钮时,它会关闭应用程序。而不是那样,我想让InfoWindow关闭。

有什么直接的方法可以实现这一点吗?

共有1个答案

蒋茂材
2023-03-14

我设法解决了这个问题。

我修改了MarkerManager,以便在InfoWindow即将打开时通过EventBus发送通知:

@Override
public View getInfoContents(Marker marker) {
    View content = fillContent();
    EventBus.getDefault().post(new MapInfoWindowShownEvent(marker));
    return content;
}

并且我在活动中添加了事件处理:

private Marker mLastShownInfoWindowMarker = null;

@Override
public void onBackPressed() {
    if(mLastShownInfoWindowMarker != null && mLastShownInfoWindowMarker.isInfoWindowShown()) {
        mLastShownInfoWindowMarker.hideInfoWindow();
    } else {
        super.onBackPressed();
    }
}

public void onEvent(MapInfoWindowShownEvent event) {
    mLastShownInfoWindowMarker = event.getMarker();
}
 类似资料:
  • 我有一个带有searchView图标的操作栏。我点击searchView图标,出现softInputMode键盘,我的ListView出现用于搜索。但是,当您关闭searchView时,searchView会关闭,但我无法让ListView在searchView关闭时也关闭。 下面是我在activity_maps中的ListView代码。xml 地图ctivity.java 所以最初当MapsAc

  • 问题内容: 你好, 我正在使用Java Swing,并且想在单击按钮时关闭一个窗口。我不知道使用动作侦听器作为执行此操作的最佳方法,但是目前我正在编译错误,因此它一定是不正确的。 这是我的代码: 我遇到的问题是列出的最后一个类,它实际上只是关闭当前窗口,因此再次显示主菜单屏幕。我需要在该类中创建的静态引用。但是将其更改为静态是无效的修饰符吗? 我该如何解决? 问题答案: 试试这个 并发送一个实例给

  • 我的app里有一些这样的按钮: 我正在尝试创建一个带有文本和图标的按钮。Android:DrawableLeft对我不起作用(也许会,但我不知道如何设置图标的最大高度)。 所以我创建了一个包含ImageView和TextView的LinearLayout,并使其像一个按钮一样运行: 我的新按钮正是我想要的(字体大小,图标和文本放置)。但它看起来不像我的默认按钮: 所以我试着改变新按钮的背景和文本颜

  • 我正在编写一个android应用程序,使用框架布局和片段作为其组件。 我有3个片段:、、。 在社区片段中,用户按下一个按钮来创建一个任务。然后TaskFromFrament用替换FrameLayout中的社区片段。因为在那之后,我想用后退按钮返回社区片段。 在TaskFormFragment中,用户按create按钮创建任务。然后TaskFragment打开,没有添加堆栈,因为我不想在按下后退按钮

  • 我对libGDX有一个问题,当我用后退按钮退出后恢复应用程序时,只有一个白色屏幕。 实际应用运行,接受触摸输入,播放声音,但屏幕只是白色。 我读过保持对纹理的静态引用可能会导致这个问题,但我没有这样做。 下面是我的资产代码如何工作的简化版本。 在按下后退按钮后返回应用程序时,重新创建AssetManager,重新打开SplashScreen(为白色),并更新AssetManager直到重新加载所有

  • 我正在编写一个使用ChessClock类的游戏应用程序。这两个运动员每人都有一个钟。时钟每十分之一秒向自己发送一个信息流,如果运行,则减少剩余时间。当时间到期时,时钟会调用父视图组中的一个方法,该方法会停止时钟并设置一个标志,该标志会导致忽略进一步的触摸事件,从而用户无法再移动工件。我正在用kotlin写作,但我认为java程序员也会明白这一点: 这可以正常工作,但是如果用户按下后退按钮然后开始一