Всплывающее окно (InfoBubble) на маркер нажмите здесь карты - PullRequest
0 голосов
/ 03 мая 2019

Я хочу настроить карту, используя ЗДЕСЬ БЕСПЛАТНЫЙ SDK, поэтому, когда я нажимаю на маркер, появляется всплывающее окно с некоторыми текстами, я пробовал InfoBubble, но я думаю, что это больше не работает, также я хотел попробовать MapOverlay, нокажется, что это ограничено только JS.так вот мой код:

MapMarker myMapMarker =  new MapMarker(new GeoCoordinate(LAT, LNG), myImage);

map.addMapObject(myMapMarker);
MapGesture.OnGestureListener listener = new MapGesture.OnGestureListener.OnGestureListenerAdapter() {
    @Override
    public boolean onMapObjectsSelected(List<ViewObject> objects) {
        for (ViewObject viewObj : objects) {
            if (viewObj.getBaseType() == ViewObject.Type.USER_OBJECT) {
                if (((MapObject)viewObj).getType() == MapObject.Type.MARKER) {
                        map.setInfoBubbleAdapter( new Map.InfoBubbleAdapter() {
                        @Override
                        public View getInfoBubbleContents(MapMarker mapMarker) {
                            return null;
                        }

                        @Override
                        public View getInfoBubble(MapMarker mapMarker) {
                            View Bubble;

                            Bubble =LayoutInflater.from(getActivity()).inflate(R.layout.bubble_layout,       container, false);
                            TextView nom = Bubble.findViewById( R.id.nomecole );
                            nom.setText( "School" );
                            return Bubble;
                        }
                    } );
                    ((MapObject)viewObj).setVisible(false);
                }
            }
        }

        return false;
    }
};

и для моего макета пузыря: `

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent" android:layout_height="match_parent">
    <TextView
        android:id="@+id/nomecole"
        android:layout_width="100dp"
        android:layout_height="30dp"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:layout_marginLeft="-4dp"
        android:layout_marginTop="32dp"
        android:gravity="center"
        android:text="@string/nom"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:textSize="13sp" />
    </RelativeLayout>

`

Ответы [ 2 ]

1 голос
/ 01 июля 2019

Вы должны позвонить MapMarker.showInfoBubble(), чтобы показать, и MapMarker.hideInfoBubble(), чтобы скрыть информационный пузырь.

Также вам может понадобиться удалить линию, которая скрывает MapMarker, чтобы маркер оставался видимым после нажатия. Эта строка:

((MapObject)viewObj).setVisible(false);
0 голосов
/ 10 мая 2019

Используете ли вы Here Starter или Here Premium SDK?

...