2013-04-10 16 views
27

Tôi đang tìm kiếm một cách để vô hiệu hóa trung tâm tự động mảnh bản đồ của tôi vào chức năng đánh dấu chọn. Tôi vẫn muốn các dấu hiệu InfoWindow hiển thị, nhưng không phải là trung tâm toàn bộ bản đồ trên điểm đánh dấu mà tôi đã chọn.Làm thế nào để vô hiệu hóa android đánh dấu bản đồ trung tâm nhấp chuột tự động

+0

Nó hoạt động đúng cách, đó là giải pháp chính xác. [nhập liên kết mô tả ở đây] [1] [1]: http://stackoverflow.com/questions/15925319/how-to-disable-android-map-marker-click-auto-center ? answerertab = active # tab-top –

Trả lời

49

Hãy nhìn vào các bài sau:

Don't snap to marker after click in android map v2

Có một phương pháp được ở đó bởi @DMan, về cơ bản bạn cần phải tiêu thụ các sự kiện OnMarkerClick và ghi đè lên hành vi mặc định:

// Since we are consuming the event this is necessary to 
// manage closing openned markers before openning new ones 
Marker lastOpenned = null; 

mMap.setOnMarkerClickListener(new OnMarkerClickListener() { 
public boolean onMarkerClick(Marker marker) { 
    // Check if there is an open info window 
    if (lastOpenned != null) { 
     // Close the info window 
     lastOpenned.hideInfoWindow(); 

     // Is the marker the same marker that was already open 
     if (lastOpenned.equals(marker)) { 
      // Nullify the lastOpenned object 
      lastOpenned = null; 
      // Return so that the info window isn't openned again 
      return true; 
     } 
    } 

    // Open the info window for the marker 
    marker.showInfoWindow(); 
    // Re-assign the last openned such that we can close it later 
    lastOpenned = marker; 

    // Event was handled by our code do not launch default behaviour. 
    return true; 
} 
}); 
+0

Cảm ơn bạn rất lý tưởng! – FiniteRed

+0

@Emil ADZ, tôi đã sử dụng cùng một logic nhưng tôi vẫn nhận được bản đồ di chuyển onMarker Nhấn; –

+0

@ AravinthaBashyam.c nếu bạn đang trở về đúng lúc kết thúc vào phương pháp này sau đó nó không nên di chuyển, và tại sao là xuống bỏ phiếu? –

23

Cách đơn giản:

    .210
  1. Thực hiện setOnMarkerClickListener()
  2. Return 'TRUE' để ngăn chặn googlemap theo mặc định chuyển trung tâm bản đồ để đánh dấu.

Ví dụ:

map.setOnMarkerClickListener(
    new OnMarkerClickListener() { 
     boolean doNotMoveCameraToCenterMarker = true; 
     public boolean onMarkerClick(Marker marker) { 
      //Do whatever you need to do here .... 
      return doNotMoveCameraToCenterMarker; 
     } 
    }); 
+2

wow điều này hoạt động như một nét duyên dáng: D – Javier

2

Rất đơn giản:

Sử dụng dưới mã cho thực hiện setOnMarkerClickListener().

@Override 
public boolean onMarkerClick(Marker marker) { 

    marker.showInfoWindow(); // show info window 

    return true; // can't move map by this 
}