У меня есть действие с простым WebView . Его содержание соответствует ширине экрана.
Но когда я запускаю команду findAllAsync()
для выделения некоторого текста в содержимом, ширина компонента переполняет экран.
Если я буду искать во второй раз, когда переполнение исчезнет, в третий раз - снова появится и т. Д.
Это также происходит с findNext()
.
Я пробовал разные комбинации параметров, связанных с масштабированием, но безуспешно.
(setBuiltInZoomControls(), setLayoutAlgorithm(), setSupportZoom(), setUseWideViewPort(), setLoadWithOverviewMode(), setOverScrollMode(), setInitialScale()
)
Экран:
Внизу расположена горизонтальная полоса прокрутки, показывающая, что страница переполняет экран.
Мой код:
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);
}
});
Кто-нибудь знает, можно ли это решить?
Спасибо.