在Android P中:由于没有窗口焦点而导致丢弃事件:KeyEvent

问题描述 投票:0回答:1

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);
        }

我的问题是,如何动态设置缺失的焦点到PopupMenuRecyclerView或如何在Android P中运行的应用程序中克服这个问题。

请提示,我在stackOverflow中遇到了同样的问题,但没有找到合适的解决方案,所以发布问题并等待所有类型的建议和答案。在此先感谢.enter image description here

android android-studio popupmenu
1个回答
0
投票

显示PopupWindow时我在android p上遇到同样的问题

我解决了它,但是像View.post()这样:

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

希望可以帮到你

© www.soinside.com 2019 - 2024. All rights reserved.