【问题标题】:Codename One CSS Material Icon color not changing代号一 CSS 材质图标颜色不变
【发布时间】:2018-10-27 15:52:20
【问题描述】:

我创建了一个应用程序来测试新的 CN1 CSS 支持。

该插件很棒,一切正常且开箱即用,除了按钮上的材质图标不会随着按钮的文本颜色而改变其颜色。它只是始终保持相同的(黑色)颜色。

在使用 CSS 支持之前,我将主题编辑器的默认前景色设置更改为材质图标,但现在主题编辑器似乎与样式分离,不再有任何效果。

是否有图标的 UIID 或任何其他方式来更改材质图标的颜色?

这是我的代码:

    FontImage icon = FontImage.createMaterial(FontImage.MATERIAL_CHECK, "TitleCommand", 3);        
    Button buttonTest = new Button("Test css");
    buttonTest.setUIID("ButtonTest");        
    buttonTest.setIcon(icon);

还有 CSS:

    ButtonTest {
        color: red;
    }

【问题讨论】:

  • FontImage 在创建过程中根据当前样式创建图像。一旦创建,即使您在事后更改样式,图标也不会改变。这有优点也有缺点。我们添加了一个setMaterialIcon() 方法来标记。我正在考虑让它表现得像这样的选项,以便它随着主题的变化而更新
  • 谢,谢谢你的回复。我经常使用并且喜欢材质图标,我发现不能影响颜色是一个缺点,因为从布局的角度来看,它会以某种方式扭曲屏幕外观的和谐,并且您仅限于您选择的颜色在项目开始时。当然,您知道什么最适合您的产品。你提到的优点是什么?我也找不到标签的 setMaterialIcon() 方法。
  • 您需要更新库才能获得该方法。这不是一个缺点,因为常规图标也不会改变它们的颜色。只有在动态更改主题时才会看到这一点,但对于大多数不会发生的应用程序。

标签: css codenameone


【解决方案1】:

试试看

FontImage img = FontImage.createMaterial(FontImage.MATERIAL_THUMB_UP, style);

【讨论】:

  • 你用什么做风格?
【解决方案2】:

只是为了发布一个可能能够指导某人的完整答案:

Style style = new Style();
style.setBgColor(ColorUtil.GREEN);
style.setFgColor(ColorUtil.WHITE);
style.setBgTransparency(255);

FontImage imageBack = FontImage.createMaterial(FontImage.MATERIAL_NEXT_WEEK, style);

【讨论】:

    猜你喜欢
    • 2018-01-23
    • 2021-11-08
    • 2017-05-20
    • 2019-02-14
    • 1970-01-01
    • 2015-07-07
    • 2019-04-26
    • 2017-05-07
    • 2018-10-16
    相关资源
    最近更新 更多