首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >在Android中:由于没有窗口焦点而删除事件: KeyEvent

在Android中:由于没有窗口焦点而删除事件: KeyEvent
EN

Stack Overflow用户
提问于 2019-02-14 21:09:23
回答 2查看 2.4K关注 0票数 4

Android P中,启动时的应用程序在抛出警告时无法正常工作:

代码语言:javascript
运行
AI代码解释
复制
 W/ViewRootImpl: 
    Dropping event due to no window focus: MotionEvent { action=ACTION_DOWN, KeyCode = DPAD_DOWN} 

代码语言:javascript
运行
AI代码解释
复制
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();之后,应用程序开始工作得稍微好一些,但仍然可以观察到警告,有时感觉就像为用户挂起了系统。有关详细信息,请参阅下面的代码片段:

代码语言:javascript
运行
AI代码解释
复制
@Override
        public boolean dispatchKeyEvent(KeyEvent event) {
            LogUtils.d(TAG, String.valueOf(event.getKeyCode()));
            this.getWindow().getDecorView().setFocusable(true);
            return super.dispatchKeyEvent(event);
        }

我的问题是,如何动态地将缺失的焦点设置为 PopupMenuRecyclerView,或者如何在运行Android的应用程序中克服这一问题。

请建议,我有相同类型的问题在stackOverflow中,但不是一个适当的解决方案,所以张贴问题,等待所有类型的建议和答案。提前谢谢。

EN

回答 2

Stack Overflow用户

发布于 2019-12-12 13:29:45

在我的例子中,类似的问题是由于在任何地方使用onKeyDown()和KeyEvent.ACTION_DOWN引起的,包括在按键上显示对话框时。使用onKeyUp()和KeyEvent.ACTION_UP来显示对话框和活动可以帮我解决这个问题。

票数 2
EN

Stack Overflow用户

发布于 2019-03-05 18:47:34

当显示PopupWindow时,我在android p上也有同样的问题。

我解决了这个问题,但是通过这样的View.post()

代码语言:javascript
运行
AI代码解释
复制
getView().post(new Runnable()
{
    @Override
    public void run()
    {
        // show popup window
    }
});

希望能帮助你

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54702989

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文