2014-12-02 4 views
8

जोड़ा गया है नक्शे के साथ कार्य करना मैं जो शुरू की है एक गतिविधि है, जब कोई कनेक्शन उपलब्ध है और ऑफ़लाइन नक्शे (MapQuest) का उपयोग करता है। गतिविधि ठीक चलती है, नक्शा दिखाया जाता है, और सभी ओवरले, मार्कर आदि। उपयोगकर्ता किसी अन्य गतिविधि शुरू की है मार्कर जानकारी विंडो में से एक पर और इस पल में क्लिक करता है मैं लॉग में लाल त्रुटि संदेशों में से एक गुच्छा मिलता है, हालांकि एप्लिकेशन दुर्घटना नहीं है। इन संदेशों को (init शीर्षक में है) ZoomButtons और स्पर्श की घटनाओं के बारे में बात करने लगते हैं।

map.setBuiltInZoomControls(true); 
map.setMultiTouchControls(true); 

और नहीं किसी भी संवाद ...

  • अगर मैं लिखना:

    map.setBuiltInZoomControls (कोड में ZoomButtons या स्पर्श घटनाओं (मल्टीटच) के रूप में, वहाँ केवल 2 लाइनें हैं असत्य); map.setMultiTouchControls (गलत); जब एक और गतिविधि मैंने सोचा कि शुरू करने

लाल त्रुटि संदेश गायब हो जाते हैं लेकिन निश्चित रूप से उपयोगकर्ता में या किसी भी तरह बाहर ज़ूम नहीं कर सकते हैं ...

त्रुटि के रूप में ("सच" पैरामीटर के साथ) केवल तब होता है मैं ठहराव (पर में कुछ जोड़ने के लिए) यानी है:

onPause(){ 
map.setBuiltInZoomControls(false); 
map.setMultiTouchControls(false); 
super.OnPause(); 
} 

---- लेकिन ऐसा करने से कुछ भी नहीं बदलता है ... कोई संकेत ??? - अग्रिम में धन्यवाद! आप उनका कहना है कि यह के कारण होता है (संभावना) जब ज़ूम नियंत्रण अभी भी दिखाई दे रहे हैं करने के लिए

@Override 
public void finish() { 
    ViewGroup view = (ViewGroup) getWindow().getDecorView(); 
    view.removeAllViews(); 
    super.finish(); 
} 
+2

मिले उत्तर (समाधान नहीं) मेरे द्वारा: जब मैं मार्कर पर क्लिक करता हूं और जानकारी खोलता हूं तो osmdroid ज़ूमबूटन दिखाई दें (उनके पास कुछ श्रोता मानचित्र पर टैप प्राप्त करना चाहिए); अगर मैं infoWindow पर क्लिक करें, जबकि वे हमेशा मौजूद त्रुटि उत्पन्न हुई हैं (आदेश 2 ° गतिविधि शुरू करने के लिए में); मैं तब तक इंतजार करता हूं जब तक वे गायब नहीं हो जाते: कोई त्रुटि नहीं। तो शायद मुझे ज़ूमबर्ट्स को बदलने के लिए osmdroid स्रोत को देखना संभव है, ज़ूमबूटन को बदलने/गायब व्यवहार को बदलने के लिए संभव है, जिस तरह से वास्तव में उपयोगी नहीं है। आप के लिए –

+0

धन्यवाद और नोनी, मैं इस के साथ संभाल सकता है! धन्यवाद! – Jenix

+0

यहां ओएसएमड्रॉइड इश्यू ट्रैकर पर प्रलेखित है: https://github.com/osmdroid/osmdroid/issues/328 – spy

उत्तर

15

अपनी गतिविधि को यह जोड़ें। मैंने इसका परीक्षण किया, और यह सही था। जब मैंने ज़ूम नियंत्रण दिखाते हुए बैक बटन दबाया, तो यह उस रिसाव त्रुटि को दिखाएगा, अगर मैं इंतजार कर रहा था जब तक नियंत्रण नियंत्रण नहीं हो जाता है (वे स्क्रॉलिंग रोकने के बाद करते हैं), तो कोई रिसाव त्रुटि नहीं थी।

WebSettings में एक छोटा सा शोध प्रदान किया गया एक तरीका प्रदान करता है जो ज़ूम नियंत्रण नहीं दिखाता है, जिसका अर्थ यह है कि जब भी आप बैक बटन दबाते हैं तो यह रिसाव नहीं होता है। यह अभी भी चुटकी प्रभाव के साथ ज़ूम करता है। इस विधि का उपयोग करने का एकमात्र नुकसान यह है कि आपके नियंत्रण नहीं दिखाए जाएंगे। लेकिन मेरे लिए, यह इसके लायक है, क्योंकि अधिकांश उपयोगकर्ता सभी ऐप्स के लिए चुटकी ज़ूम के बारे में जानते हैं।

यहाँ मैं क्या प्रयोग किया जाता है:

// make sure your pinch zoom is enabled 
webView.getSettings().setBuiltInZoomControls(true); 

// don't show the zoom controls 
webView.getSettings().setDisplayZoomControls(false); 
+0

यह बहुत उपयोगी है। – srain

8

मैं ठीक उसी समस्या हो रही थी ... धन्यवाद:

+1

आपको बहुत बहुत धन्यवाद !!!!!!!!!! धन्यवाद, धन्यवाद – Jenix

+1

मेरे लिए आश्चर्यजनक रूप से काम करता है। धन्यवाद @ नोनी ए –

+0

क्या यह लीकिंग बटन को हटाने का एक समाधान है? वे आमतौर पर वहां छोड़ दिए जाते हैं क्योंकि उन्हें डेवलपर्स द्वारा उपयोगी समझा जाता है ... –

1

इस रिसाव खिड़की के साथ समस्या यह एंड्रॉयड 3.0 के निम्न संस्करण में प्रकट नहीं होता है, तो, तुम क्या करने की कोशिश कर सकते हैं:

// enabled zoom support 
    getSettings().setSupportZoom(true); 
    getSettings().setBuiltInZoomControls(true); 

    // but,We should hide this button, otherwise in the version 
    // of Android 3 and above, there is a window leak. 
    if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) { 
     // call requies API Level 11 (Android 3.0 +) 
     getSettings().setDisplayZoomControls(false); 
    } 
संबंधित मुद्दे