개요
플러터 앱에서 전화번호 입력 시 하이픈이 자동으로 추가되는 Formatter를 적용해 보겠습니다.
Formatter 생성
class HyphenFormatter extends TextInputFormatter {
@override
TextEditingValue formatEditUpdate(
TextEditingValue oldValue,
TextEditingValue newValue,
) {
if (newValue.text.length > 12) {
return oldValue;
}
final newText = StringBuffer();
for (int i = 0; i < newValue.text.length; i++) {
if (i == 3 || i == 7) {
newText.write('-');
}
newText.write(newValue.text[i]);
}
return TextEditingValue(
text: newText.toString(),
selection: TextSelection.collapsed(offset: newText.length),
);
}
}
Controller 선언
final TextEditingController _controller = TextEditingController();
TextFormField 에 적용
반드시 FilteringTextInputFormatter.digitsOnly을 inputFormatter에 추가해 주세요.
TextFormField(
controller: _controller,
keyboardType: TextInputType.number,
inputFormatters: [
FilteringTextInputFormatter.digitsOnly,
HyphenFormatter(),
],
decoration: InputDecoration(
hintText: '000-0000-0000',
border: OutlineInputBorder(),
),
)
참고 자료
'프로그래밍 > Flutter <Dart>' 카테고리의 다른 글
[Flutter] iOS 18 Type 'UIApplication' does not conform to protocol 'Launcher' 에러 해결 (0) | 2024.09.18 |
---|---|
[Flutter] 자주 사용하는 SnackBar Flutter 코드 템플릿 (0) | 2024.08.20 |
[flutter] linearGradient opacity 조절하여 일부 투명하게 만들기 (0) | 2024.01.15 |
[flutter] BuildContext 그리고 ScaffoldState.of() 에 대한 이해 (1) | 2024.01.06 |
[flutter] android minSdkVersion 변경하기 (flutter sdk 3.13) (1) | 2024.01.03 |