0

私の質問を読んでくれてありがとう、辛抱強く読んでください。シナリオは、通常のAndroidアプリケーションとは少し異なります。

AndroidTV用に独自のランチャーを作成しています。アプリケーションをシステムアプリとして実行するための完全な権限があります。

ウィジェットを配置する独自のランチャーがあります。Androidでは通常、ホーム画面にドラッグアンドドロップしてウィジェットを配置しますが、私の場合、ランチャーが起動したらすぐにすべてのウィジェットを配置する必要があります。すべてのウィジェットを正常に配置できます。ユーザーはウィジェットの位置を変更したり、ウィジェットを削除したりすることはできません。すべてのウィジェットが修正されました。

今の要件はこのようなものです、

  1. Android TVの場合、すべてのウィジェットやアプリなどにアクセスするためのリモコンがあります。タッチスクリーンの代わりに、すべてにアクセスするためのリモコンがあります。

  2. すべてのウィジェットがあるホーム画面/ランチャーでは、空間ナビゲーションを実装する必要があります。つまり、リモートの左/右/上/下キーを使用してすべてのウィジェットをナビゲートする必要があります。

解決策として、私は次のことを行いました。

  1. フォーカス変更イベントをリッスンするためにonFocusChangeListenerを処理し、onClickイベントを処理するためにonClickListenerも処理しました。

  2. フォーカスの変更とクリックで、追加のデータ(got_focus、lost_focus、またはclicked)とともに、各ウィジェットにブロードキャストを送信します。各ウィジェットには、ブロードキャストを受信する受信機があり、状態に応じて、ウィジェットは背景画像を変更します。各レシーバーにLogを入れました。すべての受信者はそれぞれのブロードキャストを受信しますが、問題は状態を変更する動作が一貫していないことです。ウィジェットが状態を変更することもありますが、ブロードキャストを受信して​​も変更しないこともあります。

したがって、この動作を一貫させる他の方法があるかどうかを知りたいと思います。ランチャーに取り組んでいて、同じシナリオに出くわしたことがある人は、私を助けてください。私は過去3日間からこの部分で立ち往生しています。ランチャーからウィジェットの背景画像を更新する他の方法はありますか?

辛抱強く読んでくれてありがとう。どんな種類の助けもいただければ幸いです。

再度、感謝します。

4

2 に答える 2

2

現在、ウィジェットは TV には適していません。

ウィジェットを含む LinearLayout を配置できます。

focusable で linearlayout を設定します。

ウィジェット コンテンツ フォーカスを禁止しました。

リモート キーは、LinearLayout の状態を変更します。

OKを押したら。ウィジェットのアクティビティを開始するだけです。

ただし、ウィジェットのコンテンツを制御することはできません(フォーカスを禁止)。

于 2012-11-16T08:15:33.193 に答える
0

developer.android.com に移動し、「State List Resource」を検索して、関連する Android TV GUI 要素に適用します。

于 2016-06-21T12:15:39.227 に答える