android - 如何根据内容动态收缩 WebView 大小?

标签 android performance android-layout webview android-widget

issue的详细解释可以看this question因为用户添加了图像以更好地解释它。

我正在我的 WebView 中加载 Html 内容。我的布局有很多 View ,WebView 放置在 ScrollView 内(根据布局要求)。请不要回答为 - “不要将 WebView 放入 ScrollView”。我知道将 WebView 放在 ScrollView 中并不是一件好事,但根据要求我需要这样做。

所以,我有左 fragment (显示列表项)和右 fragment (显示从左 fragment 选择列表项时反射(reflect)的数据)。现在,首先,当我在 WebV 中加载 Html 内容时,它显示正确。之后,当我用新的 Html 内容刷新 WebView 时,就会出现问题。

假设,我的第一个 Html 内容有 100 行,它正确显示,然后我用新的 40 行的 Html 内容重新加载 WebView,然后 WebView 没有缩小并适合 40 行的内容,它仍然保持为长达 100 行,在底部显示白色/空白区域。

因此,WebView 似乎能够从先前加载的较​​少内容重新调整自身大小,但在内容少于先前加载的内容时无法重新调整自身大小。

我尝试了很多方法,

  • 在 Manifest 中添加 android:hardwareAccelerated="true"
  • This Blog
  • 还有许多其他方式和博客
  • 我也曾尝试使用 mWebView.clearView(); 这会导致重新调整 WebView 的大小,但有时 WebView 开始闪烁,这很烦人。类似于 this video

但是,找不到任何合适的解决方案。如果你们中的任何人之前有同样的问题,请告诉我我可以应用的最佳解决方案。

更新 -

在进一步谷歌搜索后,这似乎是 Honeycomb 中的一个众所周知的问题。 This question也表明了类似的问题。

最佳答案

似乎没有办法在加载后动态调整 WebView(减小)其大小。因此,唯一可以解决我的问题的方法是重新加载完整的 WebView。

所以,我没有在 XML 中定义 Fragment,而是通过每次动态添加 Fragment 来改变我的东西。通过它我能够解决我的问题。

关于android - 如何根据内容动态收缩 WebView 大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15546416/

相关文章:

java - Android 填充 ArrayList 时的性能问题

java - onCreate 在 finish() 之后没有被调用?

java - Android ProgressDialog 显示何时检索数据

android - "Android Resource File"是什么?

android:(坏)布局背景图像质量低

android - fragment 之间的启动画面/动画

php - # 和//在 PHP 中的区别?

android - 印地语字符无法正确显示在 Web View 中

android - 如何在 Android 的 HTTP Post 请求中传递对象数组?

android SensorEventListener问题