Ошибка темы Chrome Codename One - PullRequest
0 голосов
/ 01 мая 2018

Я получил эту кнопку для переключения тем:

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();
            }
    }

Этот код будет изменять темы в последовательности, как вы можете видеть, проблема возникает при переходе с Leather на 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 голосов
/ 02 мая 2018

Вам нужно добавить revalidate() после переключения тем, чтобы пользовательский интерфейс обновлялся до новых размеров шрифта / отступов / полей и т. Д.

Если это не сработает, попробуйте forceRevalidate(), чего обычно делать не следует, но иногда это необходимо.

...