Android SurfaceView 问题

标签 android surfaceview onkeydown

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

我已经尝试了我遇到的每一个建议,确保设置了 focusable 和 touchmodefocusable 等,将我的 onkeydown 处理程序从 View 移到 Activity 等。它在模拟器和硬件上的工作方式相同。

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

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

谢谢。

最佳答案

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

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

关于Android SurfaceView 问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6884276/

相关文章:

android - 在 Android 中播放视频时出现黑屏

android - 如何将相机预览传递给 MediaCodec.createInputSurface() 创建的 Surface?

Android:需要更快的方式来显示字节数组中的 RGB565 位图

javascript - 处理 'onkeydown'事件

android - 在不使用 setSpacing 的情况下防止图库图像重叠

delphi 按回车键

android - 谷歌身份验证器作为单一登录方法

java - 没有找到类“org.slf4j.LoggerFactory

android - Android:Twitter SDK:无法导入任何Twitter类

java - 将 ImageView 实现为 SurfaceView