Я использую Android WebView для отображения некоторого HTML-контента (точнее, String
с HTML-тегами), сгенерированного во время выполнения.Контент имеет в основном HTML <table ...>
, показывающий различные вещи, и строки этой таблицы генерируются моей программой.Содержимое HTML загружается в мой WebView, вызывая метод loadDataWithBaseUrl()
.
Теперь каждый раз, когда я генерирую новую строку, я создаю новую <tr></tr>
и изменяю строку HTML, чтобы добавить вновь созданную строку в таблицу.Очевидно, мне нужно вспомнить метод loadDataWithBaseUrl()
, чтобы перезагрузить HTML и показать последнюю строку.
Теперь здесь есть несколько проблем:
Первый) Каждый раз loadDataWithBaseUrl()
вызывается, WebView прокручивается к верхней части страницы Секунда) Я хочу прокрутить WebView
после его загрузки до конца страницы, чтобы всегда отображалась последняя сгенерированная строка.
Теперь актуальная проблема:
Если я попытаюсь вызвать метод WebView
pageDown(true)
после завершения загрузки страницы, я получу неприятную анимацию ипользователь должен дождаться окончания прокрутки WebView к нижней части страницы.
Поскольку, похоже, нет никакого способа отключить это поведение, когда я прыгаю вверх и вниз, я прибегнул к JavaScript и прокручиваю страницу до самого конца.внизу после загрузки страницы (вызов функции window.onload
)
Теперь я столкнулся с другой проблемой!Тем не менее, есть мерцание, вызванное перезагрузкой страницы WebView, которая приводит к прокрутке до конца и функции JavaScript, прокручивающей страницу сразу вниз.
Я провел бесчисленные часы в последние несколько дней и до сих порне нашли способ достичь желаемых результатов.Есть ли способ решить эту проблему?(Обходной путь / может быть другая стратегия?) Очевидно, виновником является врожденное поведение WebView, которое прокручивается до самого верха после завершения загрузки страницы.