Переполнение области просмотра Android WebView при поиске текста - PullRequest
0 голосов
/ 27 апреля 2018

У меня есть действие с простым WebView . Его содержание соответствует ширине экрана.

Но когда я запускаю команду findAllAsync() для выделения некоторого текста в содержимом, ширина компонента переполняет экран. Если я буду искать во второй раз, когда переполнение исчезнет, ​​в третий раз - снова появится и т. Д.

Это также происходит с findNext().

Я пробовал разные комбинации параметров, связанных с масштабированием, но безуспешно. (setBuiltInZoomControls(), setLayoutAlgorithm(), setSupportZoom(), setUseWideViewPort(), setLoadWithOverviewMode(), setOverScrollMode(), setInitialScale())

Экран:

image

Внизу расположена горизонтальная полоса прокрутки, показывающая, что страница переполняет экран.

Мой код:

String webContent = "";
StringBuilder sb = new StringBuilder();
for (int i = 0; i < 20; i++) sb.append(i + "<br>");

sb.insert(0, "<div id='content' style='border: 4px solid #f00'>");
sb.append("</div>");
webContent = sb.toString();

webView.loadDataWithBaseURL("file:///android_asset/", webContent, "text/html", "utf-8", null);

Также, если я добавляю метод onScaleChanged() к WebViewClient, это показывает, что когда Также, если я добавляю метод onScaleChanged() к WebViewClient, это показывает, что когда я инкрементно ищу текст, страница / WebView изменяет свой масштаб, например от 1,59 до 1,64 , а затем от 1,64 до 1,59 .

webView.setWebViewClient(new WebViewClient() {
  @Override
  public void onScaleChanged(WebView view, float oldScale, float newScale) {
    Fun.logd("-- onScaleChanged: " + oldScale + "; " + newScale);
    super.onScaleChanged(view, oldScale, newScale);
  }
});

Кто-нибудь знает, можно ли это решить?

Спасибо.

...