2011-08-05 18 views
12

मुझे एक वेबव्यू के साथ प्रदर्शन की समस्या आती है जिसका मैं अपने आवेदन में से एक में उपयोग कर रहा हूं।डेटा लोड करते समय वेबव्यू रीड्रो समस्या

जब मैं लोडडाटा कहता हूं, तो वेबव्यू पहले टेक्स्ट प्रदर्शित करता है और फिर पृष्ठ की छवियों (मानक व्यवहार) को लोड करता है।

कभी कभी, उन छवियों को पाठ स्थिति को संशोधित करते हैं, पुराने पाठ स्थिति साफ नहीं है और दोनों पुराने पाठ और नया पाठ + छवि

यहाँ क्या यह समस्या तब होती है जब की तरह लग रहा का एक स्क्रीनशॉट प्रदर्शित होता है:

webview redraw problem

यह सही ढंग से पुनः बनाने नहीं है यह सामग्री दी गई है वेबव्यू की तरह है। बेशक एक सरल रद्द() काम नहीं करता है ...

यह कोई अक्सर होते हैं, लेकिन कहते हैं कि एक बार 20 से अधिक

कोड डेटा प्रदर्शित करने के लिए प्रयोग किया जाता (गतिविधि जीवन चक्र के तरीकों के बाहर कहा जाता है) कर सकते हैं:

// Include the html headers to the content received from WS 
String webtext = String.format(ConfigApp.HTML_BODY, wsdata.getText()); 
mWebView.setWebChromeClient(...); 
mWebView.setWebViewClient(...); 
mWebView.setBackgroundColor(0); 
mWebView.loadDataWithBaseURL(null, webtext, "text/html", "UTF-8", null); 

कोई विचार यह कैसे ठीक करें?

+0

देखकर बिना 'html' के बाद refreshDrawableState() विधि कॉल करने के लिए है की कोशिश करो जिस डेटा को आप लोड करने का प्रयास कर रहे हैं, हम इस समस्या को हल करने में मदद नहीं कर सकते हैं (क्योंकि यह आपका 'एचटीएमएल' हो सकता है, न कि 'एंड्रॉइड'। – Phil

+0

मैं नहीं से आ सकता एचटीएमएल। यह फोन पर ज्यादातर बार सही तरीके से प्रदर्शित होता है और फ़ायरफ़ॉक्स पर कोई समस्या नहीं है। यह एक ताज़ा/redraw समस्या लगता है। –

उत्तर

7

मुझे अंततः समस्या को ठीक करने का एक तरीका मिला है।

WebView पारदर्शी पृष्ठभूमि निकालें: यह मेरे लिए ठीक है

String webtext = String.format(ConfigApp.HTML_BODY, wsdata.getText()); 
mWebView.setWebChromeClient(...); 
mWebView.setWebViewClient(...); 
// mWebView.setBackgroundColor(0); 
mWebView.loadDataWithBaseURL(null, webtext, "text/html", "UTF-8", null); 

क्योंकि मेरी WebView एक खाली पृष्ठभूमि है। शायद यह किसी और के लिए परेशान हो सकता है।

निश्चित रूप से यह एक वेब व्यू बग है।

+1

तो मुझे क्या करना चाहिए यदि मुझे पारदर्शी वेबव्यू की आवश्यकता है ... :( –

+0

दुर्भाग्यवश, कोई विचार नहीं। इस विशेष समस्या के लिए एंड्रॉइड बग ट्रैकर पर कोई समस्या नहीं है। शायद आपको एक भरना चाहिए। –

+0

@Roman Truba: मेरे पास था वही समस्या, मुझे अपने वेबव्यू पारदर्शी को अपने माता-पिता दृश्य समूह पृष्ठभूमि के समान रंग प्रदर्शित करने की आवश्यकता थी। भाग्य, इस मूल पृष्ठभूमि में केवल एक रंग था, इसलिए मैं इस वेब का उपयोग अपनी वेबव्यू पृष्ठभूमि के लिए करता हूं और यह बग तय करता है। – VinceFR

1

यदि आप अपने WebView को किसी विशिष्ट आकार में सेट करते हैं, और "wrap_content" नहीं, तो डेटा लोड होने के बाद, वेबदृश्य इसकी सामग्री का सही आकार बदलता नहीं है।

मुझे लगता है कि यह विजेट के साथ एक बग है ..

तो ..
layout_height विशेषता में "wrap_content" इस्तेमाल करने की कोशिश।

+0

मेरा वेबव्यू पहले से ही wrap_content में है। –

1

मुझे अक्सर लोडवेटविथबेस यूआरएल के साथ लोड सामग्री के बाद वेबव्यू के साथ स्पोरैडिक समस्याएं नहीं दिख रही हैं। हालांकि WebView की ऊंचाई wrap_content पर सेट की गई थी, वेबव्यू हमेशा सामग्री को लपेटने के लिए आकार बदल नहीं पाएगा। इसके बजाय वेबव्यू की ऊंचाई शून्य थी। कभी-कभी यह ठीक प्रदर्शन करेगा और अन्य बार ऐसा नहीं होगा। कभी-कभी समस्या केवल पोर्ट्रेट अभिविन्यास में होती है और परिदृश्य ठीक काम करेगा। मैंने अपने सेट बैकग्राउंड कॉलर कॉल को हटाने का प्रयास किया लेकिन इससे मदद नहीं मिली। हालांकि, मैं उस लेआउट को बदलकर आज दूर जाने में समस्या प्राप्त करने में सक्षम था, जिस पर वेबव्यू लाइनरलाउट से रिलेटिव लयआउट में था।

+0

आपके अनुभव को साझा करने के लिए धन्यवाद। अगली बार जब मैं वेबव्यू समस्याओं का सामना करूँगा तो मैं आपका समाधान करूंगा। –

0

mWebView.setBackgroundColor(0x00ff0000); 
+0

हाय और स्टैक ओवरफ्लो में आपका स्वागत है! कृपया [प्रश्न पुस्तिका का उत्तर कैसे दें] पढ़ें (http://stackoverflow.com/questions/how-to-answer)। यह साइट एक प्रश्नोत्तर साइट है जो फोरम नहीं है। क्या आप कुछ और विवरण जोड़ सकते हैं? – slm

0

तुम बस loadDataWithBaseURL बुला() विधि और उसके हल होगा आपकी समस्या

mWebView.loadDataWithBaseURL(null, webtext, "text/html", "UTF-8", null); 
mWebView.refreshDrawableState(); 
संबंधित मुद्दे