1

在 SurfaceView 上绘图时,我在拦截“后退”按键时遇到问题。我的 onKeyDown 事件似乎只在第二个和后续键事件上被调用——这对于后退键没有用,因为活动已经暂停或终止。

我已经尝试了我遇到的每一个建议,确保设置了可聚焦和可触摸模式聚焦等,将我的 onkeydown 处理程序移出视图并进入活动等。它在模拟器和硬件上的工作方式相同。

我知道这与焦点有关,但似乎我无法让我的表面视图同时接收关键事件和触摸事件的焦点。

请帮助我对此感到非常恼火,因为我不明白为什么没有其他人有这个问题。

谢谢。

4

1 回答 1

1

解决了这个问题 - 出于某种原因,在设置 setFocusable(true) 标志之前使用 requestFocus() 调用就可以了。谁达通吉。顺便说一句,这是在表面视图构造函数中完成的。

将此复制到答案中,以防它对其他人有所帮助。

于 2011-08-12T19:59:50.950 回答