Android WebView - onTouchListener перестает работать после прокрутки страницы

Я работаю над приложением, которое показывает изображения (например, слайд-шоу), когда пользователь касается изображения, я хочу открыть веб-страницу в WebView.

Проблема, которая у меня есть, заключается в том, как отслеживать активность пользователя?

Например, если пользователь больше не просматривает веб-сайт, не трогает его, не прокручивает и не масштабирует в течение 15 секунд, я хочу вернуться к слайд-шоу.

Я пытаюсь использовать метод onTouchListener и onTouch, который работает, пока я не прокрутил страницу (когда я касаюсь экрана, он вызывает три раза - соответственно событие = ACTION_DOWN/ ACTION_MOVE/ ACTION_UP), когда вы касаетесь экрана для прокрутки страницы, он вызывается дважды (событие = ACTION_DOWN/ACTION_MOVE), и метод onTouchListener больше не работает. Затем я касаюсь экрана несколько раз, и onTouch больше никогда не звонит.

Часть кода, где я устанавливаю свойства WebView:

private void setWebViewProperties() {

    mWebView = (WebView) findViewById(R.id.webView);
    mWebView.setWebViewClient(new WebViewClient());
    mWebView.getSettings().setJavaScriptEnabled(true);
    mWebView.getSettings().setBuiltInZoomControls(true);
    mWebView.setOnTouchListener(new OnTouchListener() {

        @Override
        public boolean onTouch(View v, MotionEvent event) {
            // TODO Auto-generated method stub
            noWebTouchActive = false;
            mHandler.postDelayed(noWebActive, 10000);
            return false;
        }
    });
    mWebView.setVisibility(View.INVISIBLE);
}

Любые идеи, как я могу правильно распознавать жесты пользователя и отслеживать его активность?


person Community    schedule 22.04.2013    source источник
comment
возможный дубликат android: ZoomPicker ломается на TouchListener   -  person Booker    schedule 17.01.2014


Ответы (1)


Я думаю, это ошибка. Смотри сюда:

https://code.google.com/p/android/issues/detail?can=2&start=0&num=100&q=&colspec=ID%20Type%20Status%20Owner%20Summary%20Stars&groupby=&sort=&id=36713

Я решил таким образом отключить BuiltInZoomControls

mWebView.getSettings().setBuiltInZoomControls(false)
person Marco S.    schedule 12.06.2013