2010-11-25 23 views
7

guys! Bütün gün googled ettim, hala bir çözüm bulamıyorum.Çok, sorumu buraya gönderiyorum, biraz isabet almayı umuyoruz.Webview'ın sonunda bir görünüm ekleyin

Android'de bir web görünümünün sonunda boş bir alan eklemek istiyorum, ancak web görünümünün alt dolgularını ayarlamaya çalışıyorum, ancak çalışmaz. Ben webview düzeni, kullanımdan kaldırıldı absoluteLayout olduğunu biliyorum ve ben webview tüm uzunluğu elde çalıştı ve sonunda bir görünüm eklemek, getContentHeight(), ancak, yükseklik oldukça doğru değil, bunu kullanmak için deneyin Web görüntüsünün sonu değil, belki resim ya da başka bir şey yüzünden, bilmiyorum.

Yani, sorum şu ki, orijinal hedefime ulaşmak için zaten var mı, bir web sayfasının sonunda boş bir alan mı var?

Şimdiden teşekkürler!

cevap

3

Daha önce benzer bir şey yaptım, ama işe yarayacağını düşünüyorum.

  1. ile tahrik onMeasure

  2. (CustomWebView demek) webview uzatmak özel bir sınıf oluşturma

ör

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

İki gün sonra google'a ve denemeye başladım, neyi istediğimi aldım, teşekkürler xandy, yönteminiz bana bir vuruş veriyor.

İşte benim çözümdür. OnMeasure yöntemini geçersiz kılmadım, bunun yerine computeVerticalScrollRange yöntemini, geçersiz kıldım, böylece webview'in tüm dikey uzunluğunu artıracaktır. Sonunda biraz boş alan eklemek gibi.

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

tekrar teşekkürler xandy:

şu benim kodudur.

+0

'da çalışmaz, 4.0.3, 4.4.3'de çalışmaz – Cinakyn

-1

Buradaki çözümler benim için işe yaramadı, bu yüzden farklı bir rota aldım: WebView içeriğine ekleme dolguları elde etmek için ve WebView'un kendisine değil, sadece JavaScript'i kullanarak yaptım.

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

Sen yükleme Web sayfasının CSS değiştirirken dikkatli olmak zorunda:

ben aşağıdaki kodu kullanılmış sayfa bitmiş yükleme

. Benim durumumda çalıştı.