У меня есть веб-просмотр, в котором используются встроенные элементы управления масштабированием:
wv = new WebView(this);
wv.getSettings().setBuiltInZoomControls(true);
Примечание: активируются две основные функции - pinch-to-zoom и invokeZoomPicker () (последняя вызывается только тогда, когда на представлении выполняется действие смахивания, простое касание не активирует его)
и я также хочу, чтобы что-то происходило, когда происходят события касания, используя следующее
wv.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
Log.i("touch", "touched!");
return false;
}
});
Когда WebView загружается, и я нажимаю на экран, состояния журнала «соприкасаются» каждый раз, когда я взаимодействую с экраном, как и ожидалось. Тем не менее, если я сделаю что-то, что отключит invokeZoomPicker () (кажется, что увеличение масштаба не вызывает этой проблемы, пока виджет масштабирования не появляется), onTouchListener перестает отвечать на мои нажатия (даже через несколько секунд , когда виджет исчезает из поля зрения).
Чтобы убедиться, что это был invokeZoomPicker (), я отредактировал второй сегмент моего кода следующим образом:
wv.setOnTouchListener(new View.OnTouchListener() {
public boolean onTouch(View v, MotionEvent event) {
wv.invokeZoomPicker();
Log.i("touch", "touched!");
return false;
}
});
Этот новый метод onTouch теперь срабатывает только один раз (в результате чего zoomwidget появляется в представлении - и исчезает через несколько секунд), а затем метод onTouch не вызывается снова, пока представление не будет перезагружено, поэтому это определенно проблема с виджетом invokeZoomPicker () / Zoom
Я пропустил какой-то жизненно важный кусок кода, который позволяет им сосуществовать, или мне просто нужно выбрать, без чего я могу жить?