настраиваемое информационное окно для маркера googlemap - PullRequest
0 голосов
/ 16 мая 2018

я хочу настроить информационное окно, отображаемое при нажатии маркера, я делаю макет для infowindow и устанавливаю infowindowadaptor он работает нормально, мой макет (черный закругленный угол) отображается в макете информационного окна по умолчанию, фактически информационное окно не меняет своего содержимого.

как google doc

общедоступный реферат Просмотр getInfoWindow (маркерный маркер)

GoogleMap.InfoWindowAdapter открытый статический интерфейс GoogleMap.InfoWindowAdapter Предоставляет представления для настраиваемой визуализации информационных окон.

Пользовательский вид для отображения в виде содержимого в информационном окне для маркера или значение NULL для использования рендеринга содержимого по умолчанию. общедоступный абстрактный Просмотр getInfoWindow (маркерный маркер) Предоставляет пользовательское информационное окно для маркера. Если этот метод возвращает представление, он используется для всего информационного окна. Если вы измените это представление после вызова этого метода, эти изменения не обязательно будут отражены в визуализированном информационном окне. Если этот метод возвращает ноль, будет использоваться рамка информационного окна по умолчанию с содержимым, предоставленным getInfoContents (Marker).

   public View getview(){
    View v; // Creating an instance for View Object
    LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    v = inflater.inflate(R.layout.map_custom_infowindow, null);

    TextView pickordrop = v.findViewById(R.id.placetype);
    TextView placename = v.findViewById(R.id.placename);


    return v;
}


@Override
public View getInfoWindow(Marker marker) {

    return getview();
}

@Override
public View getInfoContents(Marker marker) {
    View view = ((Activity)context).getLayoutInflater()
            .inflate(R.layout.map_custom_infowindow, null);

    TextView pickordrop = view.findViewById(R.id.placetype);
    TextView placename = view.findViewById(R.id.placename);

    pickordrop.setText("Pickup");
    placename.setText(marker.getTitle());

    InfoWindowData infoWindowData = (InfoWindowData) marker.getTag();

    return view;
}

1 Ответ

0 голосов
/ 16 мая 2018

извините, я получил свой ответ после правильного прочтения документов это говорит Сначала API вызовет getInfoWindow (Marker), а если возвращается null, то вызовет getInfoContents (Marker). Если это также возвращает ноль, то будет использоваться информационное окно по умолчанию.

и мой getInfoWindow просто возвращал пустое представление, поэтому ничего не показывалось

...