стандартизировать ширину форм Vaadin в Java API Vaadin 14 - PullRequest
1 голос
/ 22 сентября 2019

Я заметил, что когда я использую LoginForm, он имеет размер по умолчанию.Я не могу понять, как он получает этот размер.Я хотел бы стандартизировать размеры всех моих форм, например FormLayout и LoginForm.Я не возражаю, чтобы мои FormLayouts соответствовали размеру LoginForm - или установите LoginForm и FormLayouts на мой собственный заданный размер.Проблема в том, что когда я устанавливаю ширину LoginForm в процентах, она никогда не совпадает с размером FormLayouts ... LoginForm всегда получается меньше для того же процента.

Есть ли способнастроить мои LoginForms и FormLayouts на одинаковую ширину?

1 Ответ

0 голосов
/ 25 сентября 2019

В настоящее время, похоже, нет способа получить поля из LoginForm с помощью API Java.Существует проблема GitHub для аналогичной проблемы.

Как описано в проблеме, вы можете выполнить JavaScript, чтобы получить соответствующий элемент.Затем вы можете изменить его CSS вручную.Чтобы установить ширину LoginForm, вы можете использовать vaadin-login-form-wrapper.

UI.getCurrent().getPage().executeJavaScript("document.getElementsByTagName('vaadin-login-form-wrapper')[0].style.width = '200px';");

В качестве альтернативы, вы можете использовать сырой CSS и изменить атрибуты этого элемента.

После исследования CSS,Вы можете узнать, что ширина формы определяется переменной CSS --lumo-size-m.Максимальная ширина vaadin-login-form-wraper определяется как calc(var(--lumo-size-m) * 10).Поэтому вы также можете изменить тему или просто получить ширину и использовать ее для своих FormLayouts.

...