0

我在 GTV 中有一个活动,其布局包含垂直 ScrollView 内的水平 ScrollView。水平 ScrollView 包含许多按钮,使用嵌套的垂直和水平线性布局按行排列。(如果您想知道为什么有人会设计如此疯狂的 UI,这是电视的 EPG!)

在我的活动代码中,我重写了 onKeyDown,并针对某些按键执行了各种自定义操作。这工作正常,除了向上和向下翻页键。我放在 *case KeyEvent.KEYCODE_PAGE_DOWN:* 下的任何代码都不会运行。实际上,当按下这些键时,根本不会触发 onKeyDown 方法。

但是我可以看到操作系统正在接收这些按键,并且正在对它们进行操作(页面正在向上和向下滚动)。

我已经在 2 个不同的物理 GTV 设备(来自不同的制造商)上对此进行了测试,两者都存在问题。

如果有人可以提出解决方案,我将非常感激:)

4

2 回答 2

0

有几件事(因为您没有发布任何代码)我正在做一些假设。

  1. KeyEvent.KEYCODE_PAGE_DOWN - 你可能想要 KEYCODE_DPAD_DOWN 代替(同样 KEYCODE_DPAD_UP - 我在遥控器上看不到向上/向下翻页键 - 只是 dpad。

  2. 由于您自己处理关键事件,因此您应该在 onKeyDown 实现上返回 true - 否则系统可能会吞下您的关键事件。

于 2013-03-07T19:07:57.220 回答
0

我相信您想要的键是 KEYCODE_CHANNEL_UP 和 KEYCODE_CHANNEL_DOWN,这些至少映射到索尼遥控器上的向上翻页/向上频道和向下翻页/向下频道键。

于 2013-04-24T02:37:08.007 回答