2010-11-25 76 views
7

guys! 我已经搜索了一整天,仍然无法找到解决方案。所以,我在这里发布我的问题,希望能得到一些结果。在Webview结尾添加视图

我想在Android上的WebView的末尾添加一些空白区域,我尝试设置的WebView的底部填充,但是,这是行不通的。我知道webview的布局是absoluteLayout,这是弃用的,我试图得到整个webview的长度,并在最后添加一个视图,我尝试使用getContentHeight(),但是,高度不是很正确, 它不是webview的结束,也许是因为图片或其他东西,我不知道。

所以,我的问题是,反正是有实现我原来的目标,这是在网页视图的末尾添加一些空白区域?

在此先感谢!

回答

3

我之前做过类似的事情,但我认为它应该可以工作。

  1. 创建扩展web视图的自定义类(说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 2014-11-18 10:53:53

3

经过两天谷歌和尝试,我终于得到我想要的,谢谢xandy,你的方法确实给了我一个打击。

这是我的解决方案。我没有重写OnMeasure方法,相反,我重写了computeVerticalScrollRange方法,所以它会增加webview的整个垂直长度。就像在最后添加一些空白区域一样。

以下是我的代码:

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

再次感谢xandy。

+0

不适用于4.0.3,4.4.3 – Cinakyn 2014-11-18 10:54:38

-1

这里没有解决方案为我工作,所以我采取了不同的路线:为WebView而不是WebView的内容添加填充,我只是使用JavaScript。

当完成页面加载我用下面的代码:

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

你必须改变你加载网页的CSS时要小心。它在我的情况下工作。