PinCodeTextField
는 Flutter에서 사용되는 특수한 위젯으로, 주로 사용자로부터 PIN 코드나 OTP(일회용 비밀번호) 같은 숫자 입력을 받는 데 사용됩니다. 이 위젯은 pin_code_fields
패키지에 포함되어 있으며, 여러가지 사용자 정의 옵션을 제공합니다.
length
: PIN 코드의 길이를 정의합니다. 예를 들어, length: 6
는 사용자가 6자리의 숫자를 입력해야 함을 의미합니다.obscureText
: 입력된 텍스트를 숨길지 여부를 결정합니다. true
로 설정하면 각 문자가 별표나 다른 기호로 대체됩니다. OTP 입력 시 일반적으로 false
로 설정됩니다.animationType
: 입력 필드에 애니메이션을 적용할지 여부와 그 타입을 정의합니다. AnimationType.fade
는 페이드 효과를 사용함을 의미합니다.animationDuration
: 애니메이션의 지속 시간을 설정합니다. 예시에서는 Duration(milliseconds: 300)
으로 300밀리초로 설정되어 있습니다.errorAnimationController
: 입력이 잘못되었을 때 애니메이션을 제어하는 컨트롤러입니다. 사용자가 잘못된 PIN을 입력했을 때 피드백을 제공하는 데 사용됩니다.onChanged
: 텍스트가 변경될 때 호출되는 콜백 함수입니다. 예시에서는 입력된 값을 currentText
변수에 저장하는 setState
함수를 호출합니다.PinCodeTextField
위젯을 사용하기 위해서는 먼저 pin_code_fields
패키지를 Flutter 프로젝트에 추가해야 합니다. pubspec.yaml
파일에 다음 라인을 추가합니다:
dependencies:
pin_code_fields: ^[latest_version]
위젯을 사용할 때는 다음과 같이 코드에 추가합니다:
PinCodeTextField(
length: 6,
obscureText: false,
animationType: AnimationType.fade,
animationDuration: Duration(milliseconds: 300),
errorAnimationController: errorController, // 컨트롤러 정의 필요
onChanged: (value) {
setState(() {
currentText = value;
});
},
)
이 예시에서는 6자리 숫자 입력 필드를 생성하며, 입력 값이 변경될 때마다 currentText
를 업데이트합니다. 또한, 애니메이션 효과와 에러 애니메이션 컨트롤러를 사용하여 사용자 경험을 향상시킵니다.
자세한 정보와 추가 옵션은 pin_code_fields
패키지의 문서화된 페이지인 pub.dev/packages/pin_code_fields를 참고하시는 것이 좋습니다.