android webview自动高度,获取WebView内容高度,一旦其加载Android

I'm trying to apply expand collapse feature on Webview Based on its Content height but i'm always getting wrong value

Here is my code

public class MesuredHeightWebView extends WebView {

public MesuredHeightWebView(Context context) {

super(context);

}

public MesuredHeightWebView(Context context, AttributeSet attrs) {

super(context, attrs);

}

public MesuredHeightWebView(Context context, AttributeSet attrs, int defStyleAttr) {

super(context, attrs, defStyleAttr);

}

@Override

public void invalidate() {

super.invalidate();

if (getContentHeight() > 0) {

// WebView has displayed some content and is scrollable.

if(listener!=null)

listener.updateContentHeight(getContentHeight());

}

}

WebViewContentHeight listener;

public void setChangeContentListener(WebViewContentHeight listener) {

this.listener = listener;

}

}

and then in the fragment i tried to get the content height

webView.setWebChromeClient(new WebChromeClient(){

@Override

public void onProgressChanged(WebView view, int newProgress) {

super.onProgressChanged(view, newProgress);

if(newProgress==100)

{

new Handler().postDelayed(new Runnable() {

@Override

public void run() {

webView.setChangeContentListener(new WebViewContentHeight() {

@Override

public void updateContentHeight(int height) {

if(height>0 && getActivity()!=null) {

System.out.println("the height2 is" + height + " " + Utils.convertPixelsToDp(height, getActivity()));

final int text_height = height;

but my problem is that i'm always getting wrong result

Thanks

解决方案

Use the following methods instead of getContentHeight() method:

computeHorizontalScrollRange(); -> for width

computeVerticalScrollRange(); -> for height

these two methods will return the entire scrollable width/height rather than the actual widht/height of the webview on screen

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值