我有一个WebView,我希望在其中呈现一些内容。但是,如果我显示的数据长度接近5100个字符,则此WebView不会显示单个字符。
如果数据长度少于5000个字符,则WebView可以很好地工作。
我试图在WebView中传递类似于“ abcde .....”的简单数据。
如果字符数大于5100的字符将不会显示单个字符。
我已经在Internet上进行了搜索,以了解WebView内可以显示的数据量是否有任何限制,但是我似乎什么也没找到。
这是我的Java代码。
myWebView = (WebView) findViewById(R.id.passage);
String data = "abcde ......."; // large number of characters > 5100.
myWebView.loadDataWithBaseURL(URL, data, "text/html", null,null);
我也尝试过使用
myWebView.loadData(data, "text/html", null);
而不是使用loadDataWithBaseURL
函数,但这并没有帮助。这是我正在使用的XML。
<ScrollView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:fadeScrollbars="false"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:scrollbarFadeDuration="0" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:paddingBottom="5dp"
android:paddingLeft="20dp"
android:paddingRight="20dp"
android:paddingTop="10dp" >
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/passage"
android:textColor="@color/red"
android:textSize="18px" />
<WebView
android:id="@+id/passage"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fadeScrollbars="false"
android:layerType="software"
android:scrollbarAlwaysDrawVerticalTrack="true"
android:scrollbarFadeDuration="0" />
</LinearLayout>
</ScrollView>
请帮忙。
编辑:更准确地说,如果我渲染5096个字符,它将正确渲染。如果尝试渲染5097个或更多字符,则不会显示任何内容。如果我尝试将
data
变量记录在文件中。所有数据都被记录下来,因此这与没有将适当的数据保存到字符串中无关。 最佳答案
这对我来说是发生了,但是WebView内容的大小要低得多。通过loadDataWithBaseURL
加载1506个字符效果很好,但是当加载1507个字符时,整个WebView都消失了,包括背景。 (但是我仍然可以从中复制文本。)
解决方法是删除android:layerType="software"
并恢复为默认的硬件layerType。