在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中遇到了同样的问题,但没有找到合适的解决方案,所以发布问题并等待所有类型的建议和答案。在此先感谢.
显示PopupWindow时我在android p上遇到同样的问题
我解决了它,但是像View.post()
这样:
getView().post(new Runnable()
{
@Override
public void run()
{
// show popup window
}
});
希望可以帮到你