Это происходит потому, что каждый раз, когда в браузер загружается новая страница (т. Е. Не только переключается с одного вида на другой с помощью, например, Навигатора), создается новый экземпляр пользовательского интерфейса.Этот экземпляр пользовательского интерфейса будет использовать тему по умолчанию, если кто-то не запустит явно setTheme("some-theme")
снова.
Существует несколько различных подходов к исправлению этой проблемы в зависимости от того, насколько устойчивой должна быть тема.
Один из подходов - добавить @PreserveOnRefresh
к вашему UI
подклассу.Это позволит повторно использовать предыдущий экземпляр пользовательского интерфейса при перезагрузке или временном переходе на другой сайт.Он не сохранит пользовательский интерфейс и настройки темы, если пользователь закроет вкладку браузера и позже откроет новую.
Другой подход заключается в том, что вы явно сохраняете выбор темы пользователя где-то, а затем вручную применяете эту настройку.например, UI.init
или после того, как пользователь вошел в систему. Два наиболее очевидных кандидата для его сохранения находятся в файле cookie или в базе данных пользователя.