首先,我希望WebView可以滚动,但它需要表现得像一张图片,这样滚动不会导致WebView重新安排其布局以适应屏幕。当页面比屏幕大的时候,它应该只提供滚动条。
我已经阅读了如何阻止android webview在缩放时包装内容?它可以工作,除了双击执行。
要重新生成问题,请使用
1. 我加载了一个充满文本的网页到全屏的WebView。
2. 双击屏幕右侧。<——这里它只是放大,没有问题
3.双击屏幕左侧
问题来了。文本被重新排列。当我缩小到原来的比例。
如何停止webView重新安排其布局,无论发生什么?
我终于通过这一行解决了这个问题。
webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
默认情况下,WebSettings.LayoutAlgorithm
为NARROW_COLUMNS
。
通过研究android.webkit.ZoomManager
类,如果NARROW_COLUMNS
必须回流(重排),否则必要时回流。我不知道"必要"是什么,但至少在我的情况下它不会再回流了。
有一些离题,但我的目标是防止内容回流。我在Android 2上发现了这一点。有时,如果我点击缩放控制按钮,即使设置了webView.getSettings().setUseWideViewPort(true);
,网页内容也会回流。在Android 4上,这个问题不存在。
如果我没弄错的话。我认为这是网页元标签造成的。因此,我确保网页没有这一行:<meta name="viewport" content="width=device-width">
,我真的可以看到不同的是,没有这一行,网页内容不会回流。