Android 长文本不会显示在网络视图中

Android 长文本不会显示在网络视图中,android,android-webview,Android,Android Webview,在Android应用程序中,我使用WebView显示HTML文本。有时这段文字很长。在这种情况下,不显示文本。当我删除一个句子时,文本将显示在我的网络视图中。在WebView中是否有最大字符限制 string myText = "<html> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8"> <style type="text/css"&g

在Android应用程序中,我使用WebView显示HTML文本。有时这段文字很长。在这种情况下,不显示文本。当我删除一个句子时,文本将显示在我的网络视图中。在WebView中是否有最大字符限制

string myText = "<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
    <style type="text/css">
        html, body {
            background: transparent; foreground: black;
        }
        .linkcolor {
            color: #80b936;
        }
    </style>
</head>
<body>My Content<br/>&nbsp;</body></html>"
string myText=”
html,正文{
背景:透明;前景:黑色;
}
.linkcolor{
颜色:#80b936;
}
我的内容
LoadData(myText,“text/html;charset=utf-8”,null)


WebView中的文本大小没有人为的上限(设备上的RAM量除外)


如果您运行的是Android 4.4(KitKat),您可能会达到内部缓冲区大小限制(约为20MB IIRC),但添加/删除句子更改似乎不太可能将您推到该限制之上/之下。

我会注意使用双引号(“)因为这可能会导致字符串出现问题。我不确定您的示例是否有效,所以您可能需要展示一个示例,说明哪些有效,哪些无效

类似的方法可能会奏效(我将一些双引号改为单引号):

String myText=”
html,正文{
背景:透明;前景:黑色;
}
.linkcolor{
颜色:#80b936;
}
我的内容
”;
我也有同样的问题,找到了问题的答案。 将xml上的android:layerType从
“软件”
设置为
“无”
可以解决此问题

您也可以通过编程方式执行此操作:

myWebview.setLayerType(WebView.LAYER_TYPE_NONE, null);

您还可以查看
setLayerType(int layerType,Paint)

我也遇到了同样的问题。删除一个句子会导致WebView正确显示,重新添加会导致WebView为空

在我的例子中,我有一个ScrollView,它拥有一个LinearLayout,它拥有一个WebView。我删除了ScrollView,WebView开始正常工作。WebView本身提供滚动功能,因此您不需要ScrollView


我希望这是您的问题。

您的HTML是否有
标记? 如果是这样,请记住,根据HTMLDOM解析器,如果HTML以外部资源开始,它将尝试下载该外部资源,然后再继续呈现该外部资源下面的文本。 因此,如果由于某种原因,资源下载缓慢,您将看到一个空白页面。 可能的解决办法:

  • 将JS作为异步或结尾包含
  • 的CSS保持为
    显示:在内联CSS或在HTML前面声明的CSS
    标记中无
  • 内嵌JS脚本,将图像的CSS属性更改回
    display:block
  • 这就是说,由于Android WebView是一个复杂的野兽,而且很难处理,所以我正在考虑完全使用TextView和ImageView以本机方式呈现我的项目


    希望这有帮助!:)

    你解决了这个问题吗?我也遇到了同样的问题不确定这是否是他的问题,但这是我的问题。谢谢。
    myWebview.setLayerType(WebView.LAYER_TYPE_NONE, null);