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