WebView onKeyListener не работает - PullRequest
0 голосов
/ 26 июня 2018

Я должен перехватить касание на экране, и это мой код:

    mWebView = findViewById(R.id.webview);
    mWebView.setWebViewClient(new WebViewClient());
    mWebView.loadUrl(URL);
    mWebView.setOnTouchListener(this);
    mWebView.setOnKeyListener(this);

и мои слушатели:

@Override
public boolean onTouch(View view, MotionEvent motionEvent) {
    if (motionEvent.getAction() == MotionEvent.ACTION_DOWN) {
        Log.i(TAG, "Hello, touch.");
        onTouchEvent();
        return false;
    }
    return false;
}

@Override
public boolean onKey(View view, int i, KeyEvent keyEvent)
{
    Log.i(TAG, "Hello, onKey.");
    onTouchEvent();
    return false;
}

В то время как касание работает нормально при касаниях на экране, оно не перехватывает событие касания на клавиатуре. По этой причине я добавил onkeylistener, но он не перехватывает ключевые события. И последнее, меня не волнует, что набирается, а просто касание экрана.

Ответы [ 2 ]

0 голосов
/ 27 июня 2018

Если вы хотите обнаружить нажатие клавиш, попробуйте переопределить

onKeyPreIme(int keyCode, KeyEvent event);
0 голосов
/ 26 июня 2018

С моим недавним опытом необъяснимого и непоследовательного поведения вызова loadUrl () перед setWebViewClient () я бы попытался вызвать loadUrl () ПОСЛЕ установки НИЧЕГО, чтобы сделать с многопоточным WebView. Это включает setOnTouchListener () и setOnKeyListener (). Я понимаю, что мой ответ может не помочь вашей конкретной проблеме - но он может помочь другим, кто испытал подобное поведение и что-то настраивает перед вызовом loadUrl ().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...