在 SurfaceView 上绘图时,我在拦截“后退”按键时遇到问题。我的 onKeyDown 事件似乎只在第二次和随后的按键事件中被调用——这对后退键没有用,因为 Activity 已经暂停或终止。
我已经尝试了我遇到的每一个建议,确保设置了 focusable 和 touchmodefocusable 等,将我的 onkeydown 处理程序从 View 移到 Activity 等。它在模拟器和硬件上的工作方式相同。
我知道这与焦点有关,但似乎我无法让我的表面 View 同时接收关键事件和触摸事件的焦点。
请帮助我对此感到非常恼火,因为我不明白为什么没有其他人有这个问题。
谢谢。
最佳答案
解决了这个问题——出于某种原因,在设置 setFocusable(true) 标志之前使用 requestFocus() 调用就可以了。 whodathunkit。顺便说一句,这是在表面 View 构造函数中完成的。
将此复制到答案中以防对其他人有帮助。
关于Android SurfaceView 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6884276/