LWUIT: tabs - 如何标记当前选中的选项卡

Posted

技术标签:

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

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

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

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

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

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

【问题讨论】:

您使用的是哪个版本的 LWUIT? 【参考方案1】:

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

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

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

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

【讨论】:

按钮没有保持按下状态。【参考方案2】:

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

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

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

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

【讨论】:

以上是关于LWUIT: tabs - 如何标记当前选中的选项卡的主要内容,如果未能解决你的问题,请参考以下文章

如何让easyui中的tabs初始化时默认不是选中第一个选项卡而是选中我指定的选项卡??

VC++中如何用tab选中单选框控件?

如何在使用 LWUIT ResourceEditor 构建的 UI 中使用异步命令

Reactjs 将选中的 react-bootstrap 选项卡键 # 添加到当前 URL

如何突出显示当前部分

选中Tab控件单击事件,点击tab头,定位到导航栏的选项,为选中状态 ,DevExpress.XtraNavBar.NavBarControl 导航控件定位或选中状态 另导航的选项为选中状态.(代码