2013-09-12 2 views
6

Каковы ваши способы запуска действия при закрытии инфоиндуста? Я не могу найти для этого ни одного слушателя. Я думал о запуске некоторого фона Runnable , проверяющего if marker.isInfoWindowShown().infoWindow (Google Maps), ловящее событие закрытия окна

Что я хочу сделать - отобразить кнопку над моей картой, когда пользователь нажимает точку (появляется информационная строка), есть и эта кнопка в нижней части экрана. Когда infoWindow исчезает, кнопка также больше не видна.

Любые подсказки, которые слушатели должны читать?

+0

возможно дубликат [Detect, если пользователь "отменяет" маркер на карте Google] (http://stackoverflow.com/questions/18588059/detect-if-user-deselects-marker-on-google-map) –

ответ

12

В настоящее время на картах google android api нет прямого прослушивателя, соответствующего закрытию указателя маркера. Но вы можете достичь требуемой функциональности в своем приложении, проверив нижеприведенные события, которые будут действовать в качестве причин закрытия закрытого окна:

1, GoogleMap.OnMapClickListener: Когда пользователь нажимает на карту, любое отображаемое в настоящее время значение будет закрыто. Таким образом, вы можете добавить логику в этом слушателе для выполнения функций, необходимых при закрытии закрытого окна.

2, marker.hideInfoWindow(): Еще одна причина, по которой закрытие инфоиндуста будет закрыто, будет вызвано методом hideinfowindow на маркере. Если вы вызываете этот метод, тогда вы должны добавить необходимые функции, когда infowindow будет закрыт, сразу после вызова этого метода.

+0

теперь есть прямой прослушиватель, [GoogleMap.OnInfoWindowCloseListener] (https://developers.google.com/android/reference/com/google/android/gms/maps/GoogleMap#setOnInfoWindowCloseListener (com.google.android.gms. maps.GoogleMap.OnInfoWindowCloseListener)), как упоминалось в другом ответе – Sinkeat

4

Ну, я слишком поздно, чтобы ответить на этот вопрос, но теперь можно узнать, когда закрытие карты google закрывается, используя следующий метод.

@Override 
    public void onMapReady(GoogleMap googleMap) { 
     mMap = googleMap; 

     mMap.setOnInfoWindowCloseListener(new GoogleMap.OnInfoWindowCloseListener() { 
      @Override 
      public void onInfoWindowClose(Marker marker) { 
       //hide or do something you want 
      } 
     }); 
} 
Смежные вопросы