Vaadin 14 时间选择器 - 居中对齐

Vaadin 14 Time Picker - align centered

在 Vaadin 14(.1.19) 中出现了这个时间选择器组件:https://vaadin.com/components/vaadin-time-picker/java-examples

这是它的样子(只读时):

如何让这个时间选择器像这样居中显示时间(这是在浏览器中手动操作的屏幕截图(直接在嵌入的输入字段设置文本对齐:居中),而不是程序化的解决方案)?

我尝试在 Java 代码中设置文本对齐 属性 但没有效果:

TimePicker timepicker = new TimePicker();
timepicker.getElement().getStyle().set("text-align", "center");

然后我搜索了一个主题变体。但这似乎仅适用于 TextFields 和派生字段:

EmailField emailFeld = new EmailField();
emailFeld.addThemeVariants(TextFieldVariant.LUMO_ALIGN_CENTER);

您需要更改 TimePickerTextField 值部分的阴影 DOM 内的 CSS,我们使用主题属性作为附加选择器,以便不要为所有文本字段设置主题:

[part="value"] {
    :host([theme~="center"]) text-align: center;
}

通过 @CssImport 注释包含 CSS,为文本字段设置主题并将主题属性设置为日期选择器。主题属性传播到日期选择器中使用的文本字段:

@CssImport(value = "./styles/my-time-picker-styles.css", themeFor = "vaadin-time-picker-text-field")
public class YourViewOrLayout extends Composite<Div> {
   ...
   timePicker.getElement().setAttribute("theme", "center");
}

我在 中更详细地解释了它。