当用户单击标记对象时,我试图显示自定义布局。 基本的打包代码可以正常工作。
但是,当我转移到高级套餐时,它没有 Map.InfoBubbleAdapter(),hideInfoBubble,getInfoBubbleContents和isInfoBubbleVisible。
当用户也单击标记时,我什至无法打开infoBubble。
这是我使用的基本包中用于自定义视图的代码。
hereMap.get(new Map.InfoBubbleAdapter() {
@Override
public View getInfoBubbleContents(MapMarker mapMarker2) {
return null;
}
@Override
public View getInfoBubble(MapMarker mapMarker2) {
View view = LayoutInflater.from(getContext()).inflate(R.layout.layout_marker_infowindow, null);
TextView infoWindowText = view.findViewById(R.id.infoMessage);
infoWindowText.setText(mapMarker2.getTitle());
return view;
}
});
这是我在单击标记时使用的代码
@Override
public boolean onMapObjectsSelected(List<ViewObject> objects) {
for (ViewObject object : objects) {
if (object.getBaseType() == ViewObject.Type.USER_OBJECT && ((MapObject) object).getType() == MapObject.Type.MARKER) {
MapMarker mapMarker = (MapMarker) object;
System.out.println("Title is................." + mapMarker.getTitle());
if (!mapMarker.isInfoBubbleVisible()) {
mapMarker.getInfoBubbleContents();
} else {
mapMarker.hideInfoBubble();
}
return true;
}
}
当用户单击标记时,如何显示自定义信息提示框?
答案 0 :(得分:0)
您应该改用粘性地图叠加层: https://developer.here.com/documentation/android-premium/api_reference_java/com/here/android/mpa/mapping/MapOverlay.html
然后通过Map.addMapOverlay将MapOverlay实现添加到Map中: https://developer.here.com/documentation/android-premium/api_reference_java/com/here/android/mpa/mapping/Map.html#addMapOverlay-com.here.android.mpa.mapping.MapOverlay-
其背后的想法是,您可以使用普通的视图(非常灵活,自己的设计等)并将其粘贴到地图上的某个位置(然后地图将其固定在适当的位置)。这为您提供了逻辑和设计上的充分灵活性。