当前位置:  开发笔记 > 编程语言 > 正文

如何在其中添加数据后调整Android webview的大小

如何解决《如何在其中添加数据后调整Androidwebview的大小》经验,为你挑选了2个好方法。

在布局(线性,垂直)层次结构中,我有几个视图,其中一个是WebView.它们都有相同的参数:

android:layout_
android:layout_

对于所有视图,正确处理元素之间的间距,但对于Webview,在显示的文本内部之后有很多空格.

我使用布局在活动的"onCreate"方法中设置webview的(HTML)文本.

有没有办法让webview自行调整大小,以匹配其内容大小?

顺便说一下,左边的空间因设备而异(模拟器与Milestone vs Hero)

任何的想法?谢谢



1> 小智..:

我确信现在为时已晚,但添加了适合我的方法,以防有人来这里寻找解决方案.

一旦页面完成加载,我正在注入一个javascript方法来回调我JS钩子.在这种方法中我传递的大小.

    private void setupWebView() {
    webView.getSettings().setJavaScriptEnabled(true);
    webView.setWebViewClient(new WebViewClient() {
        @Override
        public void onPageFinished(WebView view, String url) {
            webView.loadUrl("javascript:MyApp.resize(document.body.getBoundingClientRect().height)");
            super.onPageFinished(view, url);
        }
    });
    webView.addJavascriptInterface(this, "MyApp");
}
@JavascriptInterface
public void resize(final float height) {
    MyActivity.this.runOnUiThread(new Runnable() {
        @Override
        public void run() {
            webView.setLayoutParams(new LinearLayout.LayoutParams(getResources().getDisplayMetrics().widthPixels, (int) (height * getResources().getDisplayMetrics().density)));
        }
    });
}

在这里也可以看到相同的解决方案.



2> Janusz..:

现在看来,如果内容太大,Webview只会自行调整大小.如果webview更大,那么内容不会收缩以回收空间.


对,关于如何强迫它的任何想法都会调整大小呢?
推荐阅读
coco2冰冰
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有