在SurfaceView上绘图时,我遇到了拦截“后退”按键的问题。我的onKeyDown事件似乎只在第二个和后续的关键事件上被调用 - 这对于后退键是无用的,因为该活动已经暂停或终止。
我已经尝试了所遇到的每一个建议,确保设置了可聚焦和touchmodefocusable等,将我的onkeydown处理程序移出View并进入活动等。它在模拟器和硬件上的工作方式相同。
我知道这与焦点有关,但似乎我不能让我的表面视图同时收到关键事件和触摸事件的焦点。
请帮助我对此感到非常恼火,因为我无法理解为什么没有其他人有这个问题。
感谢。
答案 0 :(得分:1)
解决了这个问题 - 出于某种原因使用requestFocus()调用'之前'设置setFocusable(true)标志就行了。 whodathunkit。顺便说一下,这是在表面视图构造函数中完成的。
如果有人帮助其他人,请将其复制到答案中。