Flutter에서 사용자의 입력을 받기 위한 숫자 키패드를 구현하는 것은 다양한 애플리케이션에서 요구되는 중요한 기능 중 하나입니다. 이 글에서는 `onscreen_num_keyboard` 라이브러리를 활용하여 플러터 Keypad를 구현하는 방법을 살펴보겠습니다.

목차
Flutter Keypad
사용자로부터 보안 PIN, 전화번호 등 숫자 기반 데이터를 수집해야 할 때, 숫자 키패드는 효과적인 UI 구성요소입니다. Flutter에서 이러한 기능을 구현하기 위해 `onscreen_num_keyboard`라는 외부 라이브러리를 사용할 수 있습니다. 이 글에서는 해당 라이브러리를 사용한 구현 방법을 소개합니다.
구현 단계
1. 의존성 추가하기
첫 번째 단계로, 프로젝트의 `pubspec.yaml` 파일에 `onscreen_num_keyboard` 라이브러리를 의존성으로 추가합니다.
dependencies:
flutter:
sdk: flutter
onscreen_num_keyboard: ^1.0.42. 플러터 Keypad 구현
다음으로, 숫자 입력을 처리할 위젯에서 키패드를 구현합니다. `onKeyboardTap` 콜백을 사용하여 키패드로부터 입력된 값을 처리할 수 있습니다.
class PinEntryScreen extends StatefulWidget {
@override
_PinEntryScreenState createState() => _PinEntryScreenState();
}
class _PinEntryScreenState extends State<PinEntryScreen> {
String text = "";
void onKeyboardTap(String value) {
if (text.length < 4) {
setState(() {
text += value;
});
}
}
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text('핀 입력'),
),
body: SafeArea(
child: Center(
child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Spacer(flex: 2),
// PIN 번호가 표시되는 곳
Row(
mainAxisAlignment: MainAxisAlignment.center,
children: List.generate(4, (index) {
return Padding(
padding: const EdgeInsets.all(8.0),
child: CircleAvatar(
radius: 30,
backgroundColor:
text.length > index ? Colors.blue : Colors.grey[300],
child: Text(
text.length > index ? text[index] : '_',
style: TextStyle(
fontSize: 24,
color:
text.length > index ? Colors.white : Colors.black,
fontWeight: FontWeight.bold,
),
),
),
);
}),
),
Spacer(flex: 1),
// 숫자 키패드
NumericKeyboard(
onKeyboardTap: onKeyboardTap,
textStyle: TextStyle(
color: Colors.black,
fontSize: 28,
),
rightButtonFn: () {
if (text.isEmpty) return;
setState(() {
text = text.substring(0, text.length - 1);
});
},
rightIcon: Icon(
Icons.backspace_outlined,
color: Colors.blueGrey,
),
leftButtonFn: () {
setState(() {
text = '';
});
},
leftIcon: Icon(
Icons.clear,
color: Colors.blueGrey,
),
mainAxisAlignment: MainAxisAlignment.spaceBetween,
),
Spacer(flex: 2),
],
),
),
),
);
}
}

마무리
`onscreen_num_keyboard` 라이브러리를 사용함으로써 Flutter 애플리케이션 내에서 사용자의 숫자 입력을 손쉽게 처리할 수 있습니다. 이 글에서는 기본적인 숫자 키패드 구현 방법을 설명했지만, 라이브러리는 다양한 커스터마이징 옵션을 제공하므로, 앱의 요구사항에 맞춰 키패드의 모양과 기능을 조정할 수 있습니다.