0

垂直 ScrollView 内に水平 ScrollView を含むレイアウトで GTV にアクティビティがあります。水平方向の ScrollView には、ネストされた垂直方向および水平方向の線形レイアウトを使用して行に配置された多数のボタンが含まれています。(なぜこのようなクレイジーな UI を設計するのか疑問に思われている方のために説明すると、これは TV 用の EPG です!)

アクティビティのコードでは、onKeyDown をオーバーライドし、特定のキーの押下に対してさまざまなカスタム アクションを実行しています。ページアップキーとページダウンキーを除いて、これは正常に機能します。*case KeyEvent.KEYCODE_PAGE_DOWN:* の下に配置したコードは実行されません。実際、これらのキーが押されたとき、onKeyDown メソッドはまったくトリガーされません。

ただし、OS がこれらのキーの押下を受け取り、それに基づいて動作していることがわかります (ページが上下にスクロールされています)。

これを 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 だと思います。これらは少なくとも、Sony リモコンのページ アップ/チャネル アップおよびページ ダウン/チャネル ダウン キーにマップされます。

于 2013-04-24T02:37:08.007 に答える