Android Widgets:On Focus,On Click效果到小部件

时间:2012-10-31 12:51:41

标签: android android-layout android-widget android-launcher

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

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

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

现在要求是这样的,

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

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

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

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

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

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

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

      再次感谢。

2 个答案:

答案 0 :(得分:1)

现在小部件不适合电视。

您可以将LinearLayout包含在widget中。

将linearlayout设置为可聚焦。

禁止小部件内容焦点。

远程键使LinearLayout状态发生变化。

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

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

答案 1 :(得分:0)

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