플러터에서 텍스트 입력을 받으려면 TextField 로 입력을 받을 수 있습니다.
그런데 다음과 같은 계산기 앱을 만들때 TextField() 에서 받는 내용을 숫자로 제한해야 할 때가 있습니다.
우선 keyboardType 옵션을 사용해서 숫자 키패드만 나오게 할 수는 있는데 이렇게 하면 숫자만 입력할 수 있게 보이나 문자열이 붙여넣기 되어 버립니다.
그래서 숫자를 완전 허용하지 않게 하려면 다음과 같이 inputFormatters 옵션에서 필터링을 주시면 됩니다.
정규식 조건은 [0-9] 로 주는데 0~9 까지의 숫자만 허용하겠다는 의미입니다. (allow 사용)
처음엔 여러개를 입력할 수 있어서 정규식을 [0-9]+ 로 작성해야 할 거 같았는데 아마 한글자씩 검사하는 방식이라 이렇게 쓰는거 같습니다. (아마..?)
작동은 잘합니다.
TextEditingController val1 = TextEditingController();
TextField(keyboardType: TextInputType.number, controller: val1, inputFormatters: [FilteringTextInputFormatter.allow(RegExp('[0-9]'))],)
'프로그래밍 > Flutter' 카테고리의 다른 글
[Flutter] 플러터 3.0 출시 (0) | 2022.05.28 |
---|---|
[Flutter] 플러터를 2주정도 학습해보면서 느낀 점 (0) | 2022.02.20 |
[Flutter] 스크롤 내렸을때 앱바 숨기기/보여주기 (0) | 2022.02.19 |