家伙! 我已经用Google搜索了一整天,但是,我找不到解决方案。所以,我在这里发布我的问题,希望得到一些打击。
我想在android的webview末尾添加一些空白区域,我尝试设置webview的底部填充,但是,它不起作用。我知道webview的布局是absoluteLayout,不推荐使用,我尝试了整个webview,并在最后添加一个视图,我尝试使用getContentHeight(),但是,高度不太正确, 它不是webview的结束,也许是因为图片或其他东西,我不知道。
所以,我的问题是,无论如何要实现我的原始目标,即在网页浏览结束时添加一些空白区域?
提前致谢!
答案 0 :(得分:2)
之前我做过类似的事情,但我认为它应该有用。
创建一个扩展Webview的自定义类(比如CustomWebView)
覆盖onMeasure
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时必须小心。它适用于我的情况。