我有4个标签。每个选项卡都由一个按钮表示。这些按钮用于选择当前显示的选项卡。每个按钮都有一个图标和文字。
我想通过更改相应按钮的背景颜色和文本标签颜色来突出显示当前选定的选项卡。我想使用主题和资源编辑器来完成它。
我为UIID“Tab”创建了主题并指定了未选择,选定和按下的样式。我的标签在Sun WTK看起来很棒!精细!但我发现在真正的手机上,标签总是看起来像未经选择。我试过诺基亚5800 XPressMusic和C7。为什么不同?
经过一些实验后我发现了原因 - 按钮可能只有两种状态:未选择和按下。他们永远不会处于选定状态。在使用导航键移动到按钮时,在模拟器上,它将被选中。
那么,我该怎么做才能标记当前标签?
答案 0 :(得分:2)
您可以使用一些不同的方法,尤其是1.5。
LWUIT 1.5有一个Tabs组件,几乎可以为你做所有事情并且非常灵活。
它使用调用方法setToggleButton(true)
的单选按钮。切换按钮的作用类似于单选按钮,因此当您按下组中的按钮时,它会保持按下并使用ToggleButton样式呈现(您可以将UIID设置为您想要的任何内容)。请参阅LWUIT演示的字体演示部分中使用切换按钮的示例。
适用于旧版LWUIT的选项是在按下按钮时将按钮的UIID设置为不同的值(并将先前所选按钮的UIID恢复为原始值)。
答案 1 :(得分:1)
我实施了我需要的东西。感谢Shai和他的榜样。
我没有使用主题属性并在代码中进行了所有自定义。我这样做是因为我没有意识到设置唯一的UIID如何帮助我,因为问题不在于识别必须更改道具的UIID,而在于识别要更改的按钮的样式。
下面是我解决方案的一些重要说明。
addActionListener
,了解他们已添加到标签中的按钮 AFTER 。 repaint()
。