【问题标题】:Put layout above google Map marker Android将布局放在谷歌地图标记Android之上
【发布时间】:2015-08-12 14:09:32
【问题描述】:

我有一个用于标记的自定义“信息窗口”,它有按钮,但默认用户不能点击按钮或在该布局的列表上滑动,因为该信息窗口就像一个图像。

注意:https://stackoverflow.com/a/15040761/2183804 中的解决方案不适用于我的问题,因为不同的标记具有不同的信息窗口(我已经尝试修改该答案但没有成功)。

所以,为了解决我的问题,当用户点击标记时,我在标记上方放置了一个布局。如何实现将布局放在标记上方?

在这个例子中,我有一个布局中包含可点击项目的列表

【问题讨论】:

    标签: android google-maps marker


    【解决方案1】:

    可以在此链接上找到解决方案:https://stackoverflow.com/a/31995000/3957303

    基本思想是使用PopupWindow 在屏幕上显示布局,然后使用答案中描述的updatePopup 方法将其定位在标记上。并且每次摄像头变化(监听CameraChangeListener),你调用updatePopup方法。

    【讨论】:

      【解决方案2】:

      我通过添加自定义信息窗口适配器实现了这一点。然后将其设置为我的地图。并且在适配器的getInfoWindow() 中,您可以将所有点击监听器写入您的视图。这里是代码。

          private class CustomInfoWindowAdapter implements GoogleMap.InfoWindowAdapter {
      
      
              private View view;
      
              public CustomInfoWindowAdapter() {
      
                  view = getLayoutInflater().inflate(R.layout.custom_info_window, null);
              }
      
              @Override
              public View getInfoContents(Marker marker) {
      
                  if (marker != null
                          && marker.isInfoWindowShown()) {
                      marker.hideInfoWindow();
                      marker.showInfoWindow();
                  }
                  return null;
              }
      
              @Override
              public View getInfoWindow(final Marker marker) {
      
                  final ImageView image = ((ImageView) view.findViewById(R.id.badge));
      
                  final String title = marker.getTitle();
                  final TextView titleUi = ((TextView) view.findViewById(R.id.title));
                  if (title != null) {
                      titleUi.setText(title);
                  } else {
                      titleUi.setText("");
                  }
      
      
                  return view;
              }
      
          }
      

      并以此设置为映射

       private GoogleMap mMap;
      mMap.setInfoWindowAdapter(new CustomInfoWindowAdapter());
      

      希望对您有所帮助。快乐编码...

      【讨论】:

      • 请改进该代码。为什么要注释代码?不使用 url、image 和 snipped。 getLayoutInflater 和 getApplicationContext 无法解析。找不到 FontHelper 或实用程序
      • 在哪里可以找到 FontHelper 和 Utility 类?
      • 我留下视图名称只是为了帮助您了解视图在其中的工作原理。
      • 好的。在您的代码中没有我正在寻找的 OnClick。即使我把它放在我的代码中,“onClick”按钮也不起作用......
      • 综上所述,这个方案并没有解决这个问题。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-11-23
      • 1970-01-01
      • 2011-08-15
      • 1970-01-01
      • 2017-12-29
      相关资源
      最近更新 更多