Я новичок в андроид студии. Я работаю над простым проектом. Он использует веб-просмотр, который загружает HTML-страницу. Я также использую панель действий для поиска, обновления, ... на странице ниже:
Нажав кнопку поиска, метод findAllAsync () используется для поиска и выделения всех совпадений на странице (совпадения отображаются желтым цветом). Следующая кнопка на панели действий использует метод findnext (true) и позволяет пользователю перемещаться между выделенными совпадениями. При использовании этого метода следующий выделен красным цветом:
next.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
st = et.getText().toString();
if(!st.equals("")&& st!=null) {
ourBrow.findNext(true);
}//not null
}//on click
});// next Button click
Если я только прокручиваю или увеличиваю веб-просмотр, все в порядке, и поиск следующего продолжается с предыдущего на странице. Однако если я коснусь где-нибудь в веб-просмотре, а затем нажму кнопку «Далее», выделение красным цветом не будет продолжено с предыдущей позиции на странице. Например, если предыдущий выделенный красным цветом находится в первой части страницы, и я касаюсь конца страницы, и когда я нажимаю следующую кнопку, средние желтые совпадения экранируются, а последний, находящийся в конце страницы, выделяется в красный цвет и красная подсветка продолжаются с этой позиции.
Так как мне нужно, пользователь может продолжить поиск с предыдущей позиции, и касание экрана не влияет на этот порядок, я много искал. Я пытался отключить сенсорное событие веб-просмотра, но сохраняя возможность масштабирования и прокрутки на основе , Android отключал WebView touch, но продолжал увеличивать / прокручивать . Но моя проблема все еще не решена. Пожалуйста, помогите мне решить эту проблему.
спасибо.
Edit:
Чтобы решить эту проблему, я попытался очистить фокус от вида ( Как убрать фокус, не устанавливая фокус на другой элемент управления? ). Но это не работает:
View current = getCurrentFocus();
if (current != null) current.clearFocus();
ourBrow.findNext(true);