Подробное объяснение проблемы можно понять из этого вопроса, поскольку пользователь добавил изображение, чтобы лучше объяснить его.
Я загружаю содержимое Html в свой WebView. Мой макет имеет много видов, и WebView размещается внутри ScrollView (согласно требованиям макета). Пожалуйста, не отвечайте как - "Don't put WebView inside ScrollView"
. Я знаю, что неплохо разместить WebView внутри ScrollView, но по требованию мне нужно это сделать.
Итак, у меня есть левый фрагмент (показывающий элементы списка) и правый фрагмент (отображение данных, отображаемых при выборе элемента списка из левого фрагмента). Теперь, прежде всего, когда я загружаю содержимое Html внутри WebV, оно отображается правильно. После этого, когда я обновляю WebView с новым содержимым Html, проблема возникает.
Предположим, что мой первый контент Html имеет 100 строк, которые он показывает правильно, а затем я перезагружаю WebView с моим новым содержимым Html, которое состоит из 40 строк, тогда WebView не сокращается и не подходит для контента с 40 строками, он по-прежнему остается таким же длиной 100 строк, показывающих белое/пустое пространство внизу.
Таким образом, кажется, что WebView способен перераспределять себя из меньшего содержимого, которое ранее загружалось в большее количество контента, но неспособно изменить размер самого себя, когда содержимое меньше, чем загруженное ранее содержимое.
Я пробовал много способов,
- Добавление
android:hardwareAccelerated="true"
в манифест - Этот блог
- Также многие другие способы и блог
- Также я попытался использовать
mWebView.clearView();
, что приводит к изменению размера WebView, но время от времени начинает мигать WebView, что просто раздражает. Подобно это видео
Но не удалось найти правильное решение. Если кто-то из вас имеет такую же проблему, просто дайте мне знать, какое лучшее решение я могу применить.
ОБНОВЛЕНИЕ -
После дальнейшего поиска в Google кажется, что это известная проблема в Honeycomb. Этот вопрос также указывает на аналогичную проблему.