如何强制WebView将长行文本分成多行?

时间:2012-11-26 04:55:46

标签: android webview

我目前正在从网站(论坛)获取HTML,修改它并在WebView中显示它。但是,有时字符串很长并且没有WebView认为允许换行的任何字符,因此WebView水平拉伸并引入水平滚动。我讨厌水平滚动,我想强制WebView将这些行包装到一个新行,无论WebView是否喜欢它前面包含的字符。

注意:我确实希望WebView仍然可以展开和垂直滚动。

2 个答案:

答案 0 :(得分:0)

将此功能添加到您的网页视图

 myWebView.loadUrl("javascript:stopScrolling()");

在index.html中添加此功能

function stopScrolling()
{
    document.ontouchmove = function(e){ e.preventDefault(); }
}

答案 1 :(得分:0)

使用以下样式中断所有类型的单词。 参考链接 css-tricks.com

 style="overflow-wrap: break-word; word-wrap: break-word; -ms-word-break: break-all; word-break: break-all; word-break: break-word; -ms-hyphens: auto; -moz-hyphens: auto; -webkit-hyphens: auto; hyphens: auto; "

演示

String html ="<html> <head><meta name=\"viewport\" content=\"width=device-width, user-scalable=0,initial-scale=1.0\"></head><body style=\"overflow-wrap: break-word; " +
                "word-wrap: break-word; -ms-word-break: break-all; word-break: break-all; word-break: break-word; -ms-hyphens: auto; -moz-hyphens: auto; -webkit-hyphens: auto; hyphens: auto; \">" +
                YourHtmlText +"</body></html>";

webView.loadDataWithBaseURL(null, html, "text/html", "utf-8",
                "about:blank");