在布局(线性,垂直)层次结构中,我有几个视图,其中一个是WebView.它们都有相同的参数:
android:layout_ android:layout_
对于所有视图,正确处理元素之间的间距,但对于Webview,在显示的文本内部之后有很多空格.
我使用布局在活动的"onCreate"方法中设置webview的(HTML)文本.
有没有办法让webview自行调整大小,以匹配其内容大小?
顺便说一下,左边的空间因设备而异(模拟器与Milestone vs Hero)
任何的想法?谢谢
我确信现在为时已晚,但添加了适合我的方法,以防有人来这里寻找解决方案.
一旦页面完成加载,我正在注入一个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))); } }); }
在这里也可以看到相同的解决方案.
现在看来,如果内容太大,Webview只会自行调整大小.如果webview更大,那么内容不会收缩以回收空间.