2016-05-29 5 views
9

Ich verwende Google's PlaceAutoCompleteFragment in einem aktuellen Projekt, an dem ich gerade arbeite. Wenn ich sehr schnell auf das PlaceAutoCompleteFragment klicke, öffne ich mehrere Overlays auf meiner App, was wirklich nervig ist. Wie kann ich verhindern, dass mehrere Overlays geöffnet werden? Mein Code für das Fragment ist unten angegeben:Multiple PlaceAutoCompleteFragment wird geöffnet, wenn sehr schnell darauf geklickt wird

if (autocompleteFragment == null) { 
     autocompleteFragment = (PlaceAutocompleteFragment)getFragmentManager().findFragmentById(R.id.place_autocompletehome_fragment); 
} 

autocompleteFragment.setOnPlaceSelectedListener(new PlaceSelectionListener() { 
     @Override 
     public void onPlaceSelected(Place place) { 
      // TODO: Get info about the selected place. 
      try { 
       Log.i("esty", "Place: " + place.getName()); 



      } catch (Exception e) { 
       Log.e("esty", "Error: " + e.getMessage()); 
      } 

     } 

     @Override 
     public void onError(Status status) { 
      // TODO: Handle the error. 
      Log.e("esty", "An error occurred: " + status); 
     } 
    }); 

Antwort

1

Warum versuchen Sie nicht einen Hack, um dieses Problem zu lösen. Setzen Sie einen Klick-Listener auf das gesamte Fragment und verwenden Sie den Mehrfachklick-Blocker, um das Klickereignis einmal zu übergeben.

Siehe folgende Lösung: https://stackoverflow.com/a/23103227/4901098

+0

PlaceAutoCompleteFragment hat keinen onclicklistener. aber deine Lösung hat mir vielleicht eine Idee gegeben. Verwenden Sie den PlaceAutoComplete Intent Builder, um diese Lösung zu implementieren. –

+0

Danke. Ihre Lösung hat jetzt funktioniert. –

+0

Ich bin froh, dass es funktioniert hat :) –

5

Es sieht aus wie dies ein Fehler in PlaceAutocompleteFragment ist (und SupportPlaceAutocompleteFragment). Danke, dass Sie uns darauf aufmerksam gemacht haben. Wir werden versuchen, das in einer kommenden Version zu beheben.

+0

Verdammt jetzt habe ich die Absicht PlaceAutoComplete Builder zu verwenden. Danke für die Antwort. –

+0

Dasselbe Problem mit dem Intent-Builder PlaceAutocomplete.MODE_OVERLAY. –

+1

Nur ein Update. Dies sollte nun behoben werden. – AndrewR