В 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, но не надлежащее решение, поэтому отправляю вопрос и жду всех предложений и ответов.Заранее спасибо.