2013-03-14 5 views
16

में मार्करक्लिक लिस्टनर पर पूरी तरह अक्षम करें मैं map markers पर क्लिक/टैपिंग अक्षम करना चाहता हूं। मुझे पता है कि आप खाली map.setOnMarkerClickListener सेट करके disable default behavior कर सकते हैं और सत्य लौट सकते हैं; हालांकि, यह अभी भी मार्कर पर क्लिक करने के रूप में टैप लेता है। मैं टैप को onMapClickListener पर पास करना चाहता हूं।मार्कर एपीआई v2

मेरे ऐप में, मानचित्र को टैप करने से मार्कर चारों ओर चलता है, और यदि आप मार्कर पहले से ही टैप कर रहे हैं, तो यह सोचता है कि आप मार्कर टैप कर रहे हैं! आपको लगता है कि Marker.setClickable विधि है लेकिन ऐसा नहीं है।

+0

आप एक समाधान मिला? – Patrick

+0

@ पैट्रिक नहीं मैंने नहीं किया। – Flyview

+1

मुझे इस पोस्ट में समाधान मिला: http://stackoverflow.com/questions/14497734/dont-snap-to-marker-after-click-in-android-map-v2 मूल रूप से सत्य लौटता है और उस पर क्लिक करेंमैप पर क्लिक करें श्रोता। मेरे लिये कार्य करता है। – Patrick

उत्तर

-1

map.setOnMarkerClickListener(null); कोशिश इस

+3

काम नहीं करता है। ऐसा लगता है कि आप अपना खुद का श्रोता बिल्कुल सेट नहीं करते हैं और डिफ़ॉल्ट व्यवहार खत्म हो जाता है। – Flyview

0

मैं दो सुझाव:

अगर मैं सही समझ में आया, आप मानचित्र पर एक मार्कर जगह कार्यक्षमता, सही प्रदान करना चाहते हैं ?! यदि आप setOnMarkerClickListener को नहीं हटा सकते हैं, तो आपने मानचित्र पर draw पर प्रयास किया है और अंत में अपने ड्राइंग को Marker पर "रूपांतरित करें"। (ड्राइंग से 'LatLng' प्राप्त करें और Marker बनाएं)।

वास्तव में दूसरा सुझाव वास्तव में एक अच्छा नहीं है (निर्भर करता है कि आप अपना मानचित्र ज़ूम/स्थानांतरित कर सकते हैं)। मेरे पास एक समान कार्य था और हमने मानचित्र पर पारदर्शी ओवरले का उपयोग किया, जिसने सभी उपयोगकर्ता इनपुट को संभाला और इसे प्रतिनिधि दिया। लेकिन हमारे पास ज़ूम और चाल की कार्यक्षमता नहीं थी, जो गधे में दर्द होगा ...

+1

नहीं, मैं मानचित्र पर मार्कर लगाने की कोशिश नहीं कर रहा हूं। मैं google's onMarkerClickListener को अक्षम करने की कोशिश कर रहा हूं और टैप को onMapClickListener पर पास कर रहा हूं। – Flyview

-3

OnMarkerClickListner को लागू करना आवश्यक नहीं है। बस इस कथन को हटाने का प्रयास करें

map.setOnMarkerClickListner(this) 

आपके कोड से और मुझे आशा है कि यह आपकी समस्या का समाधान करेगा।

+0

नहीं, यह काम नहीं करता है। डिफ़ॉल्ट पर मार्करक्लिक व्यवहार खत्म हो जाता है। – Flyview

+0

इस विधि को ओवरराइड करने का प्रयास करें और सुपर को कॉल न करें, ताकि डिफ़ॉल्ट विधि से बचा जा सके –

+0

मैंने सुपर को कॉल नहीं किया। – Flyview

-1
class MyInfoWindowAdapter implements GoogleMap.InfoWindowAdapter 
{ 
    @Override 
    public View getInfoContents(Marker mar) 
    { 
     return null; 
    } 
    @Override 
    public View getInfoWindow(Marker mar) 
    { 
     return null; 
    } 
} 

gmap.setInfoWindowAdapter(new MyInfoWindowAdapter);

के ऊपर यह कोड का प्रयास करें। यह आपके infowindow को शून्य पर सेट करेगा।

+0

यह उत्तर गलत है। शून्य को वापस करने के लिए एक कस्टम '' InfoWindowAdapter'' सेट करना बस इसका मतलब है कि डिफ़ॉल्ट ''InfoWindowAdapter'' का उपयोग किया जाता है। इसका परिणाम स्टॉक व्यवहार में होता है। – zyamys

9

बस ऑनक्लिक ईवेंट ओवरराइड:

map.setOnMarkerClickListener(new OnMarkerClickListener() { 
    public boolean onMarkerClick(Marker arg0) { 
     return true; 
    } 
}); 
-1

अपने नक्शे में OnMarkerClickListener लागू करें। onMarkerClick() विधि को लागू करने और वापस जाने के false

googleMap.setOnMarkerClickListener(new OnMarkerClickListener() { 
    public boolean onMarkerClick(Marker marker) { 
     return true; 
    } 
}); 
+0

घटना का उपभोग करने और व्यवहार को ओवरराइड करने के लिए 'सत्य' वापस करना बेहतर है। – sulai

संबंधित मुद्दे