В Android P: событие удаления из-за отсутствия фокуса окна: KeyEvent - PullRequest
0 голосов
/ 15 февраля 2019

В Android P, приложение при запуске не работает должным образом с выдачей предупреждений:

 W/ViewRootImpl: 
    Dropping event due to no window focus: MotionEvent { action=ACTION_DOWN, KeyCode = DPAD_DOWN} 

и

W/ViewRootImpl: Cancelling event due to no window focus: MotionEvent { action=ACTION_UP, KeyCode = DPAD_DOWN} and its not allowing any action to performed.

Проверьте изображение для подробного предупреждения.

Примечание : То же приложение работает нормально в Android O, но в Android P иногда фокус отсутствует в элементах PopupMenu и не возвращает фокус до перезагрузки системы.После использования dispatchKeyEvent и динамической установки фокуса на представление как v.requestFocus(); приложение начало работать немного лучше, но все же иногда появляется предупреждение, когда пользователь чувствует, что система зависла.Посмотрите ниже фрагмент кода для деталей:

@Override
        public boolean dispatchKeyEvent(KeyEvent event) {
            LogUtils.d(TAG, String.valueOf(event.getKeyCode()));
            this.getWindow().getDecorView().setFocusable(true);
            return super.dispatchKeyEvent(event);
        }

Мой вопрос, , как динамически установить отсутствующий фокус на PopupMenu и RecyclerView или как преодолеть это в работающем приложениив Android P.

Пожалуйста, предложите, я получил то же самое время вопроса в stackOverflow, но не надлежащее решение, поэтому отправляю вопрос и жду всех предложений и ответов.Заранее спасибо. enter image description here

1 Ответ

0 голосов
/ 06 марта 2019

У меня такая же проблема на андроиде p, когда я показываю PopupWindow

, и я решил ее, но View.post() вот так:

getView().post(new Runnable()
{
    @Override
    public void run()
    {
        // show popup window
    }
});

надежда может помочь вам

...