2

我有 4 个标签。每个选项卡由一个按钮表示。这些按钮用于选择当前显示的选项卡。每个按钮都有一个图标和文本。

我想通过更改相应按钮的背景颜色和文本标签颜色来突出显示当前选择的选项卡。我想使用主题和资源编辑器来做到这一点。

我为 UIID“Tab”创建了主题并指定了未选择、选择和按下的样式。我的标签在 Sun WTK 中看起来很棒!美好的!但我发现在真正的手机上,标签总是看起来没有被选中。我试过诺基亚 5800 XPressMusic 和 C7。为什么有区别?

经过一些实验,我找到了原因 - 按钮可能只有两种状态:未选中和按下。它们永远不会处于选定状态。在模拟器上,当我使用导航键移动到按钮时,它会被选中。

那么,我应该怎么做才能标记当前标签呢?

4

2 回答 2

2

您可以使用几种不同的方法,尤其是在 1.5 中。

LWUIT 1.5 有一个 Tabs 组件,它几乎可以为您做所有事情,并且非常灵活。

它使用setToggleButton(true)调用方法的单选按钮。切换按钮的作用类似于单选按钮,因此当您按下组中的按钮时,它会保持按下状态并使用 ToggleButton 样式呈现(您可以将 UIID 设置为您想要的任何内容)。请参阅 LWUIT 演示的字体演示部分中使用切换按钮的示例。

一个适用于旧版本 LWUIT 的选项是在按下按钮时将其 UIID 设置为不同的值(并将先前选择的按钮的 UIID 恢复为原始值)。

于 2011-12-08T08:51:37.023 回答
1

我实现了我需要的。感谢 Shai 和他的榜样。

我没有使用主题属性,而是在代码中进行了所有自定义。我这样做是因为我没有明白设置唯一 UIID 对我有什么帮助,因为问题不在于识别必须更改道具的 UIID,而在于识别要更改的按钮样式。

下面是我的解决方案的一些重要说明。

  1. addActionListener在将按钮添加到选项卡调用它们。
  2. 按下任何选项卡按钮时,更新选项卡按钮的UNSELECTED样式。您也可以更改他们的图标。
  3. repaint()在第 2 步之后调用表单。
于 2011-12-09T08:50:30.040 回答