java - 我的 Vaadin 应用程序中所有布局的半透明横幅,à la Vaadin Charts 2 Demo 许可证?

标签 java vaadin vaadin7

Vaadin Charts 2附加组件提供限时试用许可证。

在该试用期内,您的应用启动时会在用户界面(浏览器窗口/选项卡)底部显示一个半透明的灰色条。灰色条显示一些文本。灰色条也会对用户的点击使用react(条消失)。即使我更改了下方的布局,该栏仍保留在 UI 上。

screen shot of Vaadin app’s tables obscured by floating translucent bar

我想在我自己的应用程序中提供完全相同的行为。当紧急警报未决时,我想在屏幕上用一个栏来通知用户。我想在用户单击该栏时使用react。我希望该栏出现并保持显示状态,而不管栏下方的布局如何变化。

我不想让每个布局都管理一些紧急警报通知小部件,我只想让一个小部件(半透明栏) float 在应用程序的整个其余部分上。

有什么方法可以让我自己提供应用范围内的栏吗?

澄清一下,问题中更重要的部分不是条的半透明性。更重要的部分是:如何将此栏 float 到 UI 中的任何和所有内容上。当我从 VerticalLayout 更改为 GridLayout 再到 TabSheet 时,Vaadin 图表“使用评估许可证”仍然显示。所以,这就是我的问题的核心,如何在该 UI 中的不断变化的布局上 float 一个栏,而不让每个布局都知道栏小部件。

最佳答案

利用CssLayout .

public class Bar extends CssLayout
{
    public Bar()
    {
        addStyleName("bar");
        addComponent(new Button("Click"));
    }
}

并将其设置为:

.bar
{
    position: fixed;
    width: 100%;
    height: 80px;
    bottom: 100px;
    z-index: 100;
    opacity: 0.7;
    background: blueviolet;
}

与对应表一起产生:

enter image description here

请记住将您的 UI 类的 setContent 设置为另一个 CssLayout,否则您的栏将出现在表格旁边。这是因为大多数情况下使用的 VerticalLayout 会为每个子组件分配相等的空间。

protected void init(VaadinRequest request) {
    final CssLayout layout = new CssLayout();
    setContent(layout);
...
    Bar bar = new Bar();
    layout.addComponent(bar);
}

您可以下载完整示例 here .

关于java - 我的 Vaadin 应用程序中所有布局的半透明横幅,à la Vaadin Charts 2 Demo 许可证?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27712071/

相关文章:

java - 从 AutoPopulateList 中删除项目

java - ScrollView - 如何在 ScrollView 中启用水平滚动

java - 通过输入数组中元素的第一个字母来填充 Spinner 类

combobox - Vaadin - 树表的多个过滤器

java - 在java中按升序对一对整数列表进行排序?

java - Vaadin datefield 组件设置默认日期

java - Vaadin:如何迭代 TabSheet 中的 Tabs?

vaadin7 - 数据绑定(bind)后更新不会更新 UI 中的内容

java - Vaadin 7 迁移到 Vaadin 8 后出现小部件集错误

java - 无法沿 BeanFieldGroup 绑定(bind)嵌套属性