Android SurfaceView问题

发布于 2024-11-27 08:55:05 字数 319 浏览 0 评论 0原文

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

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

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

请帮助我对此感到非常恼火,因为我无法理解为什么没有其他人遇到这个问题。

谢谢。

Whilst drawing on a SurfaceView, I'm having a problem intercepting a 'back' key press. My onKeyDown event only seems to get called on the 2nd and subsequent key events - which is useless for the back key because by the activity has already paused or terminated.

I have tried every suggestion I have come across, making sure focusable and touchmodefocusable are set etc, moving my onkeydown handler out of the View and into the activity etc. It works the same on the emulator and on hardware.

I know this has something to do with focus, but it seems I cant get my surfaceview to recieve focus for Key Events and Touch Events at the same time.

Please help I am getting seriously miffed with this as I cant understand why no one else has this problem.

Thanks.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

始终不够爱げ你 2024-12-04 08:55:05

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

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

Solved this - for some reason using a requestFocus() call 'before' setting the setFocusable(true) flags did the trick. whodathunkit. btw this is done in the surface view constructor.

Copied this to an answer in case it helps anyone else.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文