双击时如何停止android webview内容重排?

Yeu*_*ung 0 android zoom reflow zooming android-webview

首先,我希望WebView可以滚动,但它需要表现得像一张图片,这样滚动不会导致WebView重新排列其布局以适应屏幕.当页面真的比屏幕大时,它应该只提供滚动条.

我已经阅读了如何在缩放时阻止android webview包装内容?.除了执行双击之外,它可以工作.

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

问题来了.文本重新排列.当我缩放到原始比例.文字只填写屏幕的一半.

无论发生什么事情,如何阻止webView重新排列其布局?

Yeu*_*ung 9

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

webView.getSettings().setLayoutAlgorithm(WebSettings.LayoutAlgorithm.NORMAL);
Run Code Online (Sandbox Code Playgroud)

默认情况下,WebSettings.LayoutAlgorithmNARROW_COLUMNS.

通过研究android.webkit.ZoomManager课程,它必须回流(重新排列)NARROW_COLUMNS,如果必要,其他情况是重新流动.我不知道"必要"是什么,但至少在我的情况下它不会再回流.

有一些偏离主题,但我的目标是防止内容重排.我发现在Android 2.x设备上,有时候,如果我点击zoomControl按钮,即使设置了,网页内容也会重排webView.getSettings().setUseWideViewPort(true);.在Android 4上,这个问题不存在.

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