osmdroid:单击时显示和隐藏标记说明



我正在使用Android Studio在Java编程应用程序。我已经使用osmdroid展示了一张地图,添加了一些叠加层以在特殊位置显示标记,并添加了标题&标记的描述。

现在我显示标题&使用setFocusitemsontap方法的单击时标记的描述。我的问题是我无法隐藏标题&在第二次单击中的标记说明(因此,如果已经显示)。有什么方法可以做到吗?

,或者如果不可能,则只能显示标题&使用setFocusitemsontab methode立即描述一个标记?

public static List<OverlayItem> items = new ArrayList<OverlayItem>();
//[...]
items.add(new OverlayItem("uid1","Title", "Description", new GeoPoint(51.398,6.875)));
//[...]
List<OverlayItem> currentList;
currentList = new ArrayList<OverlayItem>();
        currentList.add(items.get(i));
//[...]
final ItemizedOverlayWithFocus<OverlayItem> mOverlay = new ItemizedOverlayWithFocus<OverlayItem>(this, currentList, new ItemizedIconOverlay.OnItemGestureListener<OverlayItem>() {
                @Override
                public boolean onItemSingleTapUp(final int index, final OverlayItem item) {
                    //here it should decide if the title & description is already shown or not. (true => hide it, false => display it)
                    return true;
                }
                @Override
                public boolean onItemLongPress(final int index, final OverlayItem item) {
                    return false;
                }
        });
mOverlay.setFocusItemsOnTap(true);

我必须使用代码的这些部分,因为我想添加不同的标记,并且我希望能够集中所有这些标记。另外,我需要能够在运行时将它们添加到动态列表中。

感谢您的帮助!

如果您坚持使用InitiziedicOnoverlay,我相信您一次只能有一个弹出窗口。您将不得不亚级列为ciediconoverlay并覆盖抽奖方法,以一次支持多个项目的弹出窗口。

我认为您的标记课会更好。它已经支持点击关闭功能。同样,一次只能显示一个标记弹出窗口。可以通过为每个标记提供您自己的InfowDindow实例来覆盖这。

最新更新