Есть ли способ складывать дату и время по вертикали в компоненте Vaadins DateTimePicker?

#java #user-interface #vaadin #vaadin14

#java #пользовательский интерфейс #vaadin #vaadin14

Вопрос:

Для выбора некоторых значений разных типов данных в моем пользовательском интерфейсе я использую Vaadin DateTimePicker , представленный в 14.3.x.

Мне интересно, могу ли я каким-то образом расположить поля ввода даты и времени вертикально, а не горизонтально? Смотрите картинку:

введите описание изображения здесь

Компонент DateTimePicker здесь просто для горизонтальной ширины. И у меня нет возможности сделать все другие входные данные, такие как для строки, более широкими.

Я проверил API, но, похоже, нет простого способа достижения вертикальной укладки. Есть ли у кого-нибудь идеи, как это сделать?

Ответ №1:

это выполнимо с помощью CSS. В вашем классе Java добавьте аннотацию импорта CSS для класса примерно следующим образом:

 @CssImport(value = "./styles/dtp.css", themeFor = "vaadin-date-time-picker")
public class MyView extends Div { 
//...
  

При создании DateTimePicker :

         DateTimePicker dateTimePicker = new DateTimePicker();
        dateTimePicker.setClassName("stacked");
  

и в /frontend/styles/dtp.css :

 :host(.stacked) .slot-container {
    display: flex;
    flex-direction: column;
}
  

Ответ №2:

На Vaadin 24 настройка принятого ответа в основном работала, мне просто нужно было настроить CSS:

 :host(.stacked) .slots {
    display: flex;
    flex-direction: column;
}