【问题标题】:Change the color of tab icon for selected, unselected and pressed - cn1更改选中、未选中和按下的选项卡图标的颜色 - cn1
【发布时间】:2018-11-13 12:10:41
【问题描述】:

我已将未选中的前景色设置为灰色,选中并在主题中按下蓝色,UIID 名称为“Tab”。选项卡中的文本工作正常,但 fontImage 始终是灰色的,无论是选中、未选中还是按下。我在 fontIMage.createMaterial 样式中使用了 UIManager.getInstance().getComponentStyle("Tab")。为什么选项卡的图标不随文本变化?

Style iconStyle = UIManager.getInstance().getComponentStyle("Tab");

Image calendarIcon2 = FontImage.createMaterial(FontImage.MATERIAL_UPDATE, iconStyle, 4);
Image calendarIcon3 = FontImage.createMaterial(FontImage.MATERIAL_WHATSHOT, iconStyle, 4);

Tabs tabs = new Tabs(Component.BOTTOM);
tabs.addTab("Home", calendarIcon2, new Container());
tabs.addTab("Servicing", calendarIcon3, new Container());
tabs.addTab("History", calendarIcon, new Container());
tabs.addTab("Quick Booking", calendarIcon1, new Container());

add(BorderLayout.CENTER, tabs);

在下图中的选项卡中,为什么选中选项卡的图标颜色是灰色的,而不是蓝色的选项卡的文本?

【问题讨论】:

    标签: codenameone


    【解决方案1】:

    您使用的是固定图像,图像的颜色不会动态变化,因为选项卡不知道FontImage

    对此有两种方法。您可以使用更新的材料设计特定的addTab API:

    addTab(String title, char materialIcon, float iconSize, Component component)
    

    或者,您可以使用字体图像创建正确颜色的图标,并使用以下方法明确设置它们:

    setTabSelectedIcon(Component tab, Image icon)
    

    【讨论】:

    • 尝试了第一个但不起作用... tabs.addTab("Home", FontImage.MATERIAL_HOME, 4, homeContainer);
    • 我在这里看到了一个错误。我们选择了选择而不是按下样式,它应该在下一次更新中修复
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-06
    • 2021-07-08
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多