【问题标题】:LWUIT: tabs - how to mark the currently selected tabLWUIT: tabs - 如何标记当前选中的选项卡
【发布时间】:2011-12-07 08:37:39
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 您使用的是哪个版本的 LWUIT?

标签: java-me nokia lwuit lwuit-tabs


【解决方案1】:

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

LWUIT 1.5 有一个选项卡组件,它几乎可以为您完成所有工作,并且非常灵活。

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

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

【讨论】:

  • 按钮没有保持按下状态。
【解决方案2】:

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

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

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

  1. 致电addActionListener 获取他们添加到选项卡的按钮AFTER
  2. 当按下任何选项卡按钮时,更新选项卡按钮的 UNSELECTED 样式。您也可以更改他们的图标。
  3. 在第 2 步之后调用表单的 repaint()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-14
    • 1970-01-01
    • 1970-01-01
    • 2019-04-16
    相关资源
    最近更新 更多