Vaadin Flow TextField: как динамически менять цвет шрифта?

Я хочу динамически изменять цвет шрифта компонента Vaadin Flow TextField.

Пробовал, но не работает:

textField.getElement().setProperty("color", "red");

Я подозреваю, что это потому, что элемент <input> скрыт в теневом домике. Я понятия не имею, как с этим справиться.

Кстати, мне известно об руководстве по динамическому стилю.


person rmuller    schedule 25.01.2019    source источник
comment
Вы проверили этот вопрос и ответили? stackoverflow.com/questions/53126339/   -  person Tatu Lund    schedule 26.01.2019
comment
Я еще не тестировал это сам, но я думаю, что решение вашей проблемы состоит в том, чтобы определить тематический миксин с частью элемента ввода и использовать там настраиваемое свойство для цвета шрифта, которое вы определяете в своих глобальных стилях, а затем вы можете динамически изменять значение настраиваемое свойство.   -  person Tatu Lund    schedule 26.01.2019
comment
Спасибо. Да, я видел этот вопрос. Я не видел примера кода того, как создать тематический миксин и настраиваемые свойства в коде Java (Flow). A пока не может получить полную картину. Кроме того, не является ли это слишком сложным подходом для довольно распространенного и простого варианта использования?   -  person rmuller    schedule 26.01.2019
comment
Есть еще один вопрос и ответ по той же теме, в которой есть пример стиля текстового поля с помощью тематического миксина, см .: stackoverflow.com/questions/53141129/   -  person Tatu Lund    schedule 26.01.2019
comment
Спасибо Тату, теперь мне понятно   -  person rmuller    schedule 27.01.2019


Ответы (1)


Если вам все равно, что цвет текста метки над полем ввода также станет красным, вы также можете использовать это в комбинации (проверено с Vaadin 14.2.1, в текущих Firefox и Chromium):

textField.getElement().getStyle().set("color", "red");
textField.getElement().getStyle().set("-webkit-text-fill-color", "red");
person S. Doe    schedule 13.06.2020