0

感谢您阅读我的问题,请耐心阅读。该场景与普通的 Android 应用程序有点不同。

我正在为 Android TV 创建自己的启动器。我拥有将我的应用程序作为系统应用程序运行的完全权限。

我有自己的启动器,我在其中放置小部件。在 Android 中,我们通常通过在主屏幕上拖放来放置小部件,但在我的情况下,我必须在启动器启动后立即放置所有小部件。我能够成功放置所有小部件。用户不允许更改小部件位置或不允许删除任何小部件。所有小部件都是固定的。

现在的要求是这样的,

  1. 对于 Android TV,我可以通过遥控器访问所有小部件和应用程序等。我可以通过遥控器访问所有内容,而不是触摸屏。

  2. 在我拥有所有小部件的主屏幕/启动器上,我需要实现空间导航。即我必须通过远程左/右/上/下键浏览所有小部件。

作为解决方案,我做了以下事情:

  1. 我已经处理了 onFocusChangeListener 来监听焦点更改事件,我还处理了 onClickListener 来处理 onClick 事件。

  2. 在焦点更改和单击时,我向每个小部件发送广播,以及额外的数据,即 got_focus、lost_focus 或 clicked。在每个小部件中,我都有一个接收广播的接收器,并且根据任何状态,小部件都会更改其背景图像。我已经在我的每个接收器中输入了日志。所有接收者都接收到各自的广播,但问题是改变状态的行为并不一致。有时小部件会改变状态,但有时它们不会,即使它们接收到广播。

所以,我想知道有没有其他方法可以使这种行为保持一致。任何在启动器上工作并遇到过相同情况的人,请帮助我。从过去的 3 天开始,我被困在这部分。有没有其他方法可以从启动器更新小部件背景图像。

感谢您耐心阅读。任何形式的帮助将不胜感激。

再次感谢。

4

2 回答 2

2

现在小部件不适合电视。

你可以把LinearLayout包含小部件。

设置可聚焦的线性布局。

禁止小部件内容焦点。

遥控键使 LinearLayout 状态发生变化。

如果你按确定。只需启动小部件的活动。

但它无法控制小部件的内容(禁止焦点)。

于 2012-11-16T08:15:33.193 回答
0

转到 developer.android.com 并搜索“状态列表资源”并将其应用于相关的 Android TV GUI 元素。

于 2016-06-21T12:15:39.227 回答