[flutter 플러터] TextFormField height 줄어듦, TextFormField errorText 높이

파랑꼬마·2023년 7월 24일
post-thumbnail

TextFormField의 height를 원하는 높이로 조절하고 싶은데, 강제로 값을 넣으면 error Text가 TextFormField의 영역을 침범해버린다.

beforeafter

해결 방법은 몇가지 있으나
아직 제대로된 방법 대신 대안만 찾은 느낌이 크다.

해결 1

높이를 조절하고 싶은 욕심을 버린다.
높이를 강제하지 않으면 플러터가 알아서 해준다.

beforeafter

높이가 자동으로 바뀌며, error text가 기존 위젯의 영역을 침범하지 않고 추가된다.
참고로 TextField 기본 height 는 51 이며, isDense: true 일 경우 43이다.
(chrome 환경에서)

해결 2

높이를 강제하며, errorText가 발생할 때 높이를 변경해준다.
SizedBox로 TextFormField를 Wrap하거나, TextFormField의 decoration 안에 constraints를 사용하여, error 상태가 아닐 때는 높이 40, error 상태면 거기에 errorText 높이인 22를 더해줬다.

beforeafter

이 방법으로 원하는 높이로 조정할 수 있고 마찬가지로 error 발생시의 높이도 조절할 수 있다.

해결 3

처음부터 ErrorText 가 있을 떄의 높이로 설정하고, decoration 안에 helperText=" " 로 공간을 미리 할당해 둔다.

beforeafter

이러면 errorText가 생겼을 때 ui의 움직임이 없기 때문에 위화감이 없으며, 코드가 깔끔하여 기분도 좋다.
이는 StackOverflow 에서 찾다가 알게된 방법이며, 사실상 이 방법이 가장 마음에 든다.
(출처 : https://stackoverflow.com/questions/56674596/validator-error-message-changes-textformfields-height)

결론

저는 해결 3 방법으로 다 바꾸러 갑니다.

profile
플러터 붐은 온다

1개의 댓글

comment-user-thumbnail
2023년 7월 24일

글 잘 봤습니다.

답글 달기