在Webview末尾添加视图

时间:2010-11-25 02:36:25

标签: android webview

家伙! 我已经用Google搜索了一整天,但是,我找不到解决方案。所以,我在这里发布我的问题,希望得到一些打击。

我想在android的webview末尾添加一些空白区域,我尝试设置webview的底部填充,但是,它不起作用。我知道webview的布局是absoluteLayout,不推荐使用,我尝试了整个webview,并在最后添加一个视图,我尝试使用getContentHeight(),但是,高度不太正确, 它不是webview的结束,也许是因为图片或其他东西,我不知道。

所以,我的问题是,无论如何要实现我的原始目标,即在网页浏览结束时添加一些空白区域?

提前致谢!

3 个答案:

答案 0 :(得分:2)

之前我做过类似的事情,但我认为它应该有用。

  1. 创建一个扩展Webview的自定义类(比如CustomWebView)

  2. 覆盖onMeasure

  3. e.g。

    public void onMeasure(int wspec, int hspec){
        super.onMeasure(wspec, hspec);
    
        this.setMeasuredDimension(this.getMeasuredWidth(), this.getMeasuredHeight() + 200); // the padding you need. 
    }
    

答案 1 :(得分:2)

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

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

以下是我的代码:

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

再次感谢xandy。

答案 2 :(得分:-1)

这里的解决方案不适用于我,所以我采取了不同的路线:为WebView而不是WebView本身的内容添加填充,我只使用JavaScript做到了

当页面加载完毕后,我使用了以下代码:

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

更改正在加载的网页的CSS时必须小心。它适用于我的情况。