Chrome主题bug Codename One

时间:2018-05-01 15:25:55

标签: codenameone

我有这个按钮来切换主题:

public void onButtonThemeActionEvent(com.codename1.ui.events.ActionEvent ev) {


        if(index == 0) {
            index++;
            UIManager.initNamedTheme("/theme", "Leather");
            Display.getInstance().getCurrent().refreshTheme();
            }
            else if(index == 1) {
                index++;
                UIManager.initNamedTheme("/theme", "Chrome");
                Display.getInstance().getCurrent().refreshTheme();
            }
            else if(index == 2) {
                index++;
                UIManager.initNamedTheme("/theme", "FlatOrange");
                Display.getInstance().getCurrent().refreshTheme();
            }
            else if(index == 3) {
                index++;
                UIManager.initNamedTheme("/theme", "FlatBlue");
                Display.getInstance().getCurrent().refreshTheme();
            }
            else if(index == 4) {
                index++;
                UIManager.initNamedTheme("/theme", "FlatRed");
                Display.getInstance().getCurrent().refreshTheme();
            }
            else if(index == 5) {
                index = 0;
                UIManager.initNamedTheme("/theme", "Business");
                Display.getInstance().getCurrent().refreshTheme();
            }
    }

此代码会更改序列中的主题,如您所见,从皮革更改为Chrome时会出现问题,然后如下图所示,表单标题中缺少一个字母“Tela Princip a “应该是”Tela Princip al “而不是。

OBS:这是Android设备。

Chrome主题在表单标题中缺少一封信: Missing a letter in the Form title

导航完任何菜单并退回Tela Principal后,修复如下图所示:

fixed after navigating through menus

如何修复此Chrome主题错误?

1 个答案:

答案 0 :(得分:2)

切换主题后需要添加revalidate(),以便UI更新为新的字体大小/填充/边距等。

如果这不起作用,请尝试forceRevalidate(),这是您通常不应该做的,但有时是必要的。