Android   发布时间:2022-04-28  发布网站:大佬教程  code.js-code.com
大佬教程收集整理的这篇文章主要介绍了Android WebView getContentHeight()始终返回0大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在实现一个WebView,它可以根据内容高度调整其高度.我试着做以下事情:
WebView view = new WebView(context);
view.loadData(htmlString,"text/html","utf-8");

view.setWebViewClient(new WebViewClient() {
    public void onPageFinished(WebView view,String url) {
        super.onPageFinished(view,url);
        Log.d("2",view.getContentheight() + "");
        // Set the height of the webview to view.getContentHeight() here?
    }
});

Log.d("1",view.getContentHeight() + "");
@H_616_4@其中htmlString是HTML格式的String.

@H_616_4@但是两个Logs都返回0.

@H_616_4@我不确定我做的是否正确.如何知道内容高度,然后相应地设置WebView的高度?

解决方法

是因为onPageFinished回调意味着WebView已经完成从网络读取字节,就是这样.在onPageFinished被触发时,页面可能甚至还没有被解析. @H_616_4@如果您的webview的高度设置为wrap_contents,那么您可以执行以下操作:

WebView v = new WebView() {
    @Override
    public void onSizeChanged(int w,int h,int ow,int oh) {
        super.onSizeChanged(w,h,ow,oh); // don't forget this or things will break!
        Log.d(tag,"WebView height" + getContentHeight());
    }
};
@H_616_4@如果您的webview不是wrap_contents,那么一个选项是执行josedlujan在his answer中为这个问题提出的建议并从JavaScript中获取高度.

@H_616_4@另一个选择是使用已弃用的PictureListener:

webview.setPictureListener(new PictureListener() {
    int prevIoUsHeight;
    @Override
    public void onNewPicture(WebView w,Picture p) {
        int height = w.getContentHeight();
        if (prevIoUsHeight == height) return;
        prevIoUsHeight = height;
        Log.d(tag,"WebView height" + height); 
    }
});

大佬总结

以上是大佬教程为你收集整理的Android WebView getContentHeight()始终返回0全部内容,希望文章能够帮你解决Android WebView getContentHeight()始终返回0所遇到的程序开发问题。

如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。