2013-01-16 31 views
0

首先,我想WebView可以滚动,但它需要表现得像一张图片,这样滚动不会导致WebView重新排列其布局以适合屏幕。它应该只在页面比屏幕大时提供滚动条。我已阅读How to stop android webview from wrapping content while zooming?。除了执行双击之外,它工作。如何停止android webview内容重排时双击?

重新生成问题,
1.我加载了一个充满文本的网页到全屏WebView。
2.双击屏幕右侧。 < - 它只是放大,没问题
3.双击屏幕左侧。

问题来了。文本重新排列。当我放大到原来的规模。文本只是填满了屏幕的一半。

如何停止webView重新排列其布局,不管发生了什么?

回答

9

我终于通过这条线解决了这个问题。

webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL); 

默认情况下,WebSettings.LayoutAlgorithmNARROW_COLUMNS

通过研究android.webkit.ZoomManager类,如果NARROW_COLUMNS必须回流(重新排列),否则如果需要则回流。我不知道“必要”是什么,但至少在我的情况下不会再流失。

有一些脱离主题,但我的目标是防止内容重排。我发现在Android 2.x设备上,有时如果单击缩放控制按钮即使设置为webView.getSettings().setUseWideViewPort(true);,网页内容也会重新排列。在Android 4上,此问题不存在。

如果我没有弄错。我认为这是网页元标记造成的。因此,我确保网页没有这一行:<meta name="viewport" content="width=device-width">。我真的可以看到不同的,没有这一行,网页内容不会重排。