2017-09-09 4 views
0

Ich habe eine Karte und ich füge eine Markierung hinzu, wenn Firebase-Massage erhalten. Manchmal, wenn ich meinen Bildschirm ausschalte und dann einschalte, kann ich meinen Marker nicht sehen.marker.isVisible ist wahr, aber keine Markierung zeigt

Ich habe den folgenden Code in onResume:

if (situation_ == 3) { 

      if (marker == null){ 
       Log.i("Logit", "is null"); 
      }else{ 
       Log.i("Logit", String.valueOf(marker.isVisible())); 
      } 

      if (marker == null || !marker.isVisible()) { 
       final Handler handler = new Handler(); 
       handler.postDelayed(new Runnable() { 
        @Override 
        public void run() { 
         String Lat = pref.read_pref_info("usera"); 
         String Lng = pref.read_pref_info("userb"); 
         marker_op = new MarkerOptions().position(new LatLng(Double.valueOf(Lat), Double.valueOf(Lng))) 
           .icon(BitmapDescriptorFactory.fromResource(R.mipmap.marker)); 
         try { 
          Marker = mMap.addMarker(marker_op); 
         } catch (Exception ex) { 
          ex.printStackTrace(); 
         } 
        } 
       }, 2000); 
      } 

so kann ich in Logs sehen, dass Marker nicht null ist und marker.isVisible gibt true zurück. , aber ich kann keine Markierung auf der Karte sehen, und es geht nicht in dieser, wenn Zeile:

if (marker == null || !marker.isVisible()) { 

Antwort

2

Von documentation.

public boolean isVisible() 

Ruft die Sichtbarkeit Einstellung dieses Markers. Beachten Sie, dass dies nicht angibt, ob sich die Markierung im Ansichtsfenster des Bildschirms befindet. Es zeigt an, ob die Markierung gezeichnet wird, wenn sie im Ansichtsfenster enthalten ist.

Verwandte Themen