Jak wyłączyć wszystkie zdarzenia dotykowe w Android WebView (lub przewijaniu w szczególności)? Chciałbym, żeby ta aktywność obsługiwała wszystkie zdarzenia dotykowe.Wyłącz zdarzenia dotykowe WebView w Androidzie
Odpowiedz
mWebView.setOnTouchListener(new View.OnTouchListener() {
@Override
public boolean onTouch(View v, MotionEvent event) {
return true;
}
});
Wyłącza wszystkie zdarzenia dotykowe na WebView
ponieważ dotyk słuchacz jest wykonywany przed domyślne zachowanie dotykowym WebView
. Zwracając true
wydarzenie jest zużywane i nie jest propagowane do WebView
.
Użycie android:clickable="false"
nie powoduje wyłączenia zdarzeń dotykowych.
Jeśli masz rację, po prostu trzeba nadpisać metodę onTouchEvent.
Najprawdopodobniej to powinno zadziałać. Zastanawiałem się, czy istnieje nieruchomość lub coś prostszego. – hpique
Ah Widzę dobrze, możesz chcieć dać swojemu WebView ten parametr układu android: clickable = "false". Nie jestem pewien, czy to działa, ale teoretycznie powinno tak, jak WebView jest dziedziczone z widoku. –
Nie działa, ale znalazłem inne rozwiązanie, które opublikowałem. – hpique
Następnie, jak przywrócić zdarzenia? Wyobraź sobie, że muszę tymczasowo je wyłączyć, a następnie ponownie je włączyć, gdy będę potrzebować. – Hosane
W rzeczywistości ustawienie "android: clickable" i longClickable powinno wystarczyć do wyświetlenia strony internetowej –