Показать что-либо под меткой легко, просто добавьте метку ошибки ниже в макет. Если метка пуста, она не будет отображаться и не займет места.
Код проверки разработан для быстрой проверки на стороне клиента. Вы говорите о проверке на стороне сервера, и это результат ошибки сервера. В любом случае вам нужно сделать это отдельно, сделав запрос и потерпев неудачу.
В таком случае можно включить кнопку отправки, поскольку вы не обязательно хотите откладывать отправку, но если отправка нажата до проверки электронной почты выполнено, вы можете дождаться завершения этого запроса.
Если вы хотите, чтобы это было go через шаблон валидатора, вы можете просто создать валидатор, который сначала возвращает false (но отключит индикацию ошибок), а затем в Ошибка под валидатором вы можете написать «проверка доступности электронной почты».
После получения результата вы просто обновляете значение валидатора и запускаете повторную проверку ввода. Вы можете просто вызвать setText()
снова с тем же текстом, который должен запускать проверку.
Обратите внимание, что если вы делаете запрос веб-службы при каждом событии изменения данных, это приведет к довольно ужасному опыту пользовательского интерфейса. Вам нужно использовать таймер для отправки отложенного запроса, когда ввод будет завершен. Кажется, я писал что-то подобное в прошлом здесь.