Vaadin14单个组件中能否使用两个inline模式的DatePicker?
Vaadin 14 双日期选择实现方案
- 完全可以实现你需要的效果,Vaadin 14 有对应替代 Vaadin 8
InlineDateField的官方方案,不需要引入额外依赖。 - Vaadin 14 的原生
DatePicker组件自带inline展示模式,开启后就会和InlineDateField一样始终展开日历面板,默认仅支持日期选择,不需要额外配置关闭时间功能。 - 你可以直接组合两个开启了inline模式的
DatePicker实现双日历效果,如果需要当做单个组件复用,也可以把组合逻辑封装为自定义组件。
示例代码
// 初始化开始日期选择器 DatePicker startPicker = new DatePicker("起始日期"); startPicker.setInline(true); // 初始化结束日期选择器 DatePicker endPicker = new DatePicker("结束日期"); endPicker.setInline(true); // 横向排列两个选择器,即可实现双日历并排效果 HorizontalLayout dualDatePicker = new HorizontalLayout(startPicker, endPicker); dualDatePicker.setPadding(true); dualDatePicker.setSpacing(true); // 可选:添加联动逻辑,限制结束日期不能早于开始日期 startPicker.addValueChangeListener(e -> { if (e.getValue() != null) { endPicker.setMin(e.getValue()); } }); endPicker.addValueChangeListener(e -> { if (e.getValue() != null) { startPicker.setMax(e.getValue()); } });
内容的提问来源于stack exchange,提问作者Dilyan Galabov
相关产品推荐
相关产品推荐

