通过代码更改Vaadin 7中的主题

Gug*_*gan 9 themes vaadin

我正在Vaadin 7做一个项目.我需要更改页面的主题.

在Vaadin 6中,有一个名为'setTheme()'的函数.这样我就可以在代码中的任何地方使用该功能更改主题.

但是,在Vaadin 7中,我找不到那样的东西.

我知道会有办法做到这一点.

还有如何在更改主题时在UI上应用更改?

它会自动更改吗?(要么)

ICEPush会帮助我吗?

Ren*_*get 11

在Vaadin 7中,方法'setTheme()'已被新的Annotation @Theme取代.Vaadin 7无法实现"即时主题变化".

在这个Vaadin论坛主题中有一个关于Vaadin 7中飞行主题变化的讨论.你应该看看它.

  • 正如@Leif Åstrand 的回答中提到的,`setTheme()` 是在 vaadin 7.3.0 中重新引入的 (2认同)

Lei*_*and 5

在 Vaadin 7.3.0 中引入了 setTheme 功能:https : //vaadin.com/wiki/-/wiki/Main/Changing+theme+on+the+fly


Gug*_*gan 4

由于我使用了自定义主题,所以它变得非常简单。我使用切换按钮并每次执行所需的代码段。

JavaScript.getCurrent().execute("document.body.className = document.body.className.replace(\"theme1\",\"theme2\"); ");

JavaScript.getCurrent().execute("document.body.className = document.body.className.replace(\"theme2\",\"theme1\"); ");
Run Code Online (Sandbox Code Playgroud)

我的 css 文件将是这样的。

.theme1 .v-button {
   /* some css attribute */
}

.theme2 .v-button {
   /* some css attribute */
}
Run Code Online (Sandbox Code Playgroud)

相信我; 主题切换非常非常快,因为浏览器本身会自行切换主题,而不是要求 Vaadin 服务器进行切换。