Marwian
Marwian

Reputation: 13

GoogleMaps.onCameraIdle Listener should fire after waiting a while

I have a Google Map and load markers from a backend in current GeoBox. I want to wait a while before CameraIdle load the markers.

User: Swipe or Zoom -> Wait for another gesture -> OnCameraIdle()

@Override
public void onCameraIdle() {
    showProgressBar();
    loadMarkers();
    hideProgressBar();
}

Upvotes: 0

Views: 284

Answers (1)

Marwian
Marwian

Reputation: 13

Found a solution: Create a Handler and Runnable.

Handler loadHandler = new Handler();
Runnable loadRUnnable = new Runnable(){...};
@Override
public void onCameraMoveStarted(int i) {
    if(loadHandler != null){
        loadHandler.removeCallbacks(loadRunnable);
    }
}

@Override
public void onCameraIdle() {
    if(loadHandler != null){
        loadHandler.removeCallbacks(loadRunnable);
        loadHandler.postDelayed(loadRunnable, 1000);
    }
}

Upvotes: 1

Related Questions