Neo*_*eoh 5 height android webview android-4.2-jelly-bean
我在这里遇到了同样的问题。基本上我在垂直线性布局中有 text-webview-text ,如下所示:
__________
| Textview |
|__________|
| WebView | <-can zoom
|__________|
| TextView |
|__________|
Run Code Online (Sandbox Code Playgroud)
webview 有一个缩放切换,当内容放大时,较大的 webview 将调整为更大的尺寸并按下 textview:
__________
| Textview |
|__________|
| |
| |
| WebView |
| |
|__________|
| TextView |
|__________|
Run Code Online (Sandbox Code Playgroud)
直到现在一切都很好。问题是,当我放大回较小的尺寸时,webview 中的内容会缩小,但 webview 本身的大小仍然相同,留下了一个巨大的空白空间:
__________
| Textview |
|__________|
| WebView |
| |
| |
| |
|__________|
| TextView |
|__________|
Run Code Online (Sandbox Code Playgroud)
我的问题也和这个类似。调用 invalidate() 将不起作用,我不想在不破坏活动的情况下重新创建片段(我实际上不知道如何)。我的问题是,当我从大到小缩放时,如何更新/调整 webview 的高度?(注意:我动态添加了所有视图,所以请告诉我如何以编程方式解决它。谢谢)
这个奇怪的问题在 Froyo 2.2 中不存在,但在 JB 4.2.2 真机中是一个 bug。
添加如下代码片段,它将在页面加载时设置webview的高度
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) {
getActivity().runOnUiThread(new Runnable() {
@Override
public void run() {
ViewGroup.LayoutParams lp = webView.getLayoutParams();
lp.width = getResources().getDisplayMetrics().widthPixels;
lp.height = (int) (height * getResources().getDisplayMetrics().density);
webView.setLayoutParams(lp);
}
});
}
Run Code Online (Sandbox Code Playgroud)
修改自https://capdroid.wordpress.com/2014/08/07/resizing-webview-to-match-the-content-size/上的解决方案
| 归档时间: |
|
| 查看次数: |
1765 次 |
| 最近记录: |