我正在制作一个包含webview的scrollview,它在2.3,4.1上运行得很完美,但是当我在4.4模拟器上尝试它时,它会显示
View too large to fit into drawing cache, needs 5744640 bytes, only 3932160 available
webview只是空白。
这是布局
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<ScrollView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:overScrollMode="never" >
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="5dp" >
<TextView
android:id="@+id/newsTitle"
android:textSize="18sp"
android:textStyle="bold"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/last_update" />
<WebView
android:id="@+id/newsContent"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:text="@string/last_update" />
<TextView
android:id="@+id/newsDate"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/last_update" />
</LinearLayout>
</ScrollView>
</LinearLayout>
我尝试使用mywebView.setDrawingCacheEnabled(false);
,但它只返回相同的警告。
另外,我发现当网页超大屏幕时会出现问题,但是当我显示它时,我发现网页的布局略有不同,在2.3,4.1中,如果单词是,它可以简单地开始新行但是,在4.4中没有超出页面,因此该部分单词不在屏幕之外。
如何解决?感谢
答案 0 :(得分:5)
我的建议是给webview提供布局高度,以便它不会超过你指定的高度
<LinearLayout
android:id="@+id/webview1"
android:layout_width="fill_parent"
android:layout_height="150dip" >
<WebView
android:id="@+id/sampletxt"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
在您的活动中,只需添加以下内容
SampleTxt.getSettings().setLoadWithOverviewMode(true);
SampleTxt.getSettings().setJavaScriptEnabled(true);
SampleTxt.loadData("Your Text To show the Webview",
"text/html; charset=UTF-8", null);
它会正常工作。任何疑惑让我知道
答案 1 :(得分:2)
我建议您使用自己的WebView客户端。在android中我们可以使用WebViewClient或WebChromeClient。使用它你可以得到你想要的更好的结果。试试看吧。
答案 2 :(得分:0)
对于Android中的WebViews,您应该从错误的假设开始。他们不应该,但正如你所发现的,如果你让背景变成一种平面颜色,它就会解决问题。这个问题。
话虽如此,但要记住,当您为Android手机编码时,处理各种各样的处理和内存分配的移动设备仍然是个好主意,所以始终确保在真实设备上进行测试。
如果您没有至少4或5种不同的物理Android设备可以测试,那么请四处寻找允许您使用其设备进行远程测试的服务。永远不要相信,因为您在模拟器中测试过某些东西,它在真实设备上的行为会相同。