2010-11-25 13 views
7

लोगों के अंत में एक दृश्य जोड़ें! मैंने पूरे दिन गुगल किया है, फिर भी, मुझे कोई समाधान नहीं मिल रहा है। इसलिए, मैं यहां अपना प्रश्न पोस्ट करता हूं, कुछ हिट पाने की आशा करता हूं।वेबव्यू

मैं एंड्रॉइड में वेबव्यू के अंत में कुछ खाली क्षेत्र जोड़ना चाहता हूं, मैं वेबव्यू के नीचे पैडिंग सेट करने का प्रयास करता हूं, हालांकि, यह काम नहीं करता है। मुझे पता है कि वेबव्यू का लेआउट पूर्ण है, जिसे बहिष्कृत किया गया है, और मैंने वेबव्यू की पूरी लंबाई प्राप्त करने की कोशिश की, और अंत में एक दृश्य जोड़ें, मैं getContentHeight() का उपयोग करने का प्रयास करता हूं, हालांकि, ऊंचाई काफी सही नहीं है, वेबव्यू का अंत नहीं है, शायद तस्वीर या कुछ और वजह से, मुझे नहीं पता।

तो, मेरा सवाल यह है कि, क्या मेरा मूल लक्ष्य प्राप्त करने के लिए वैसे भी है, जो वेबव्यू के अंत में कुछ खाली क्षेत्र जोड़ रहा है?

अग्रिम धन्यवाद!

उत्तर

3

मैंने कुछ ऐसा पहले किया था, लेकिन मुझे लगता है कि इसे काम करना चाहिए।

  1. कि वेब-दृश्य का विस्तार एक कस्टम कक्षा बनाएं (CustomWebView कहना)

  2. अवहेलना onMeasure

उदा

public void onMeasure(int wspec, int hspec){ 
    super.onMeasure(wspec, hspec); 

    this.setMeasuredDimension(this.getMeasuredWidth(), this.getMeasuredHeight() + 200); // the padding you need. 
} 
+0

4.0.3 में काम नहीं करता है, 4.4.3 – Cinakyn

3

दो दिनों के बाद Google और कोशिश करने के बाद, आखिरकार मैं जो चाहता हूं उसे प्राप्त करता हूं, धन्यवाद xandy, आपकी विधि मुझे हिट देती है।

मेरा समाधान यहां है। मैंने OnMeasure विधि को ओवरराइड नहीं किया, इसके बजाय, मैं computeVerticalScrollRange विधि, ओवरराइड करता हूं, इसलिए यह वेबदृश्य की संपूर्ण लंबवत लंबाई को बढ़ाएगा। अंत में कुछ खाली क्षेत्र जोड़ने की तरह।

protected int computeVerticalScrollRange() { 
     float density = getResources().getDisplayMetrics().density; 
     return super.computeVerticalScrollRange()+(int)(60*density); 
    } 

धन्यवाद फिर से xandy:

निम्नलिखित मेरी कोड है।

+0

4.0.3, 4.4.3 में काम नहीं करता है – Cinakyn

-1

यहां मेरे समाधानों में से कोई भी मेरे लिए काम नहीं करता है, इसलिए मैंने एक अलग मार्ग लिया: WebView की सामग्री में पैडिंग जोड़ने के लिए और WebView पर नहीं, मैंने बस जावास्क्रिप्ट का उपयोग किया।

जब पेज समाप्त लोड हो रहा है मैं निम्नलिखित कोड का इस्तेमाल किया:

loadUrl("javascript:document.getElementsByTagName('body')[0].style.paddingBottom='" 
    + mPadding 
    + "px'"); 

आप वेब पेज आप लोड कर रहे हैं की सीएसएस बदल रहा है सावधान रहना होगा। यह मेरे मामले में काम किया।