2012-02-08 12 views
6

यदि मैं WebView पर कुछ जावास्क्रिप्ट चलाता हूं, जबकि WebView स्क्रॉल किया जा रहा है (स्क्रीन पर एक उंगली के साथ), दृश्य तब तक नई उपस्थिति के साथ अपडेट नहीं होता है जब तक कि डिवाइस से उंगली हटा नहीं जाती है और स्क्रॉल रुक जाती है।स्क्रॉल करते समय, अपने चित्र (दृश्य) को अपडेट करने के लिए वेबव्यू को मजबूर करने का कोई तरीका है?

इस परीक्षण के लिए, मैं WebView में onScroll अधिभावी कर रहा हूँ और वहाँ मैं कुछ जावास्क्रिप्ट जो एक यादृच्छिक रंग करने के लिए पृष्ठ की पृष्ठभूमि में परिवर्तन बोल रहा हूँ। पेज स्क्रॉल होने पर इसे ओवर-ओवर कहा जाता है। इसलिए स्क्रॉल करते समय इसे अलग-अलग रंगों को तेज़ी से फ्लैश करना चाहिए।

हालांकि, जिंजरब्रेड के साथ नेक्सस एस पर और आइसक्रीम सैंडविच के साथ गैलेक्सी नेक्सस पर रंग केवल तब ही अपडेट होता है जब स्क्रॉलिंग बंद हो जाती है।

लेकिन हनीकॉम के साथ एक ज़ूम पर, जब आप स्क्रॉल कर रहे होते हैं तो रंग अपडेट लगातार होता है। यह वांछित परिणाम है।

अन्य उपकरणों पर क्या अलग है और वेबव्यू को ज़ूम करने के तरीके को स्क्रॉल करते समय खुद को अपडेट करने के लिए मजबूर करने के बारे में कोई विचार क्या है?

धन्यवाद!

अधिक जानकारी: बस ध्यान दें, स्क्रॉल के दौरान जावास्क्रिप्ट प्राप्त और अधिनियमित किया गया है, लेकिन स्क्रॉलिंग खत्म होने तक इन परिवर्तनों को दिखाते हुए चित्र दिखाई नहीं देता है। उदाहरण के लिए, यदि आप जिस जावास्क्रिप्ट को कॉल करते हैं वह "console.log ('rawr') है;" स्क्रॉल करते समय दिखाई देने पर लॉग।

स्रोत कोड में मिला कुछ है कि WebViewCore.pauseUpdatePicture(mWebViewCore) कि स्क्रॉल करते हुए अपडेट होने से चित्र को निष्क्रिय कॉल एक WebView विधि startDrag() कहा जाता है। 3.0 में उन्होंने वेबसेटिंग setEnabledSmoothTransition() पेश किया जिसे आप 4.0 कोड में देख सकते हैं, जिससे आप रुकने को अक्षम कर सकते हैं। हालांकि, यह केवल 3.0 और अधिक उपलब्ध है, जिसका अर्थ है जंगली उपकरणों में 3% से कम। अब तक मुझे 3.0 से पहले डिवाइसों में इसे पाने का कोई तरीका नहीं दिख रहा है ..... :(

उत्तर

0

मेरा मानना ​​है कि जब एंड्रॉइड 2.x संस्करण स्क्रॉल किए गए थे, तो इसे तेज बनाने के लिए स्क्रीन को बिटमैप में बदल दिया गया था और यह स्क्रॉल किया गया है, संभवतः स्क्रीन पर होने वाले प्रत्येक दृश्य को फिर से चित्रित करने के बजाय। इसलिए जब तक आप इसे ओवरराइड नहीं करते हैं, तब तक रंगों को तब तक खींचा जा रहा है जब तक स्क्रॉलिंग

+0

अजीब बात यह है कि मेरे पास ज़ूम पर 3.1 है और यह ठीक वैसे ही काम करता है जैसा मैं चाहता हूं। तो शायद वे बदल गए कि उन्होंने यह कैसे किया, फिर इसे वापस बदल दिया, और फिर इसे फिर से दूसरी तरफ बदल दिया। "इस पर ovveride" कैसे पर कोई विचार? धन्यवाद! – cottonBallPaws

0

पर क्लिक करने के लिए आप ऑनटचलिस्टर का उपयोग कर सकते हैं स्क्रॉल बार पर उंगली कार्रवाई, अपने ग्राफिक्स को दोबारा हटाएं और फिर टचलिस्टर से बाहर निकलने से पहले स्क्रॉल बार पर उंगली गति को वापस पास करें।

+0

आप ग्राफिक्स को कैसे रेड्रो करेंगे? मैं वेबव्यू अपनी सामग्री, वेब सामग्री को फिर से निकालना चाहता हूं। – cottonBallPaws

0

आप अपने वेब के लिए OnTouchListener को लागू करने का प्रयास कर सकते हैं IntTouchEvent को अपने वेबव्यू कॉल पर देखें। invalidate(); यह दृश्य को खुद को फिर से चलाने के लिए मजबूर करता है।

+0

मैंने कुछ आशाओं के साथ यह कोशिश की, लेकिन अमान्य अमान्य() वेबव्यू को अपनी तस्वीर को फिर से चलाने के लिए मजबूर नहीं कर रहा है, यह तब भी स्क्रॉलिंग समाप्त होने तक प्रतीक्षा करता है। – cottonBallPaws

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

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