onscreen_keypad 1.0.3 copy "onscreen_keypad: ^1.0.3" to clipboard
onscreen_keypad: ^1.0.3 copied to clipboard

A customizable on-screen numeric keypad for Flutter apps. Ideal for PIN entry, authentication screens, and custom input fields with haptic feedback support.

example/main.dart

import 'package:flutter/material.dart';
import 'package:onscreen_keypad/on_screen_keypad.dart';

void main() {
  runApp(const ExampleApp());
}

class ExampleApp extends StatelessWidget {
  const ExampleApp({super.key});

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Keypad Example',
      theme: ThemeData(primarySwatch: Colors.blue),
      home: const KeypadExampleScreen(),
    );
  }
}

class KeypadExampleScreen extends StatefulWidget {
  const KeypadExampleScreen({super.key});

  @override
  State<KeypadExampleScreen> createState() => _KeypadExampleScreenState();
}

class _KeypadExampleScreenState extends State<KeypadExampleScreen> {
  String _enteredText = '';
  final TextEditingController _controller = TextEditingController();

  void _onKeyPress(String value) {
    setState(() {
      if (value == 'backspace' && _enteredText.isNotEmpty) {
        _enteredText = _enteredText.substring(0, _enteredText.length - 1);
      } else if (value != 'backspace') {
        _enteredText += value;
      }
      _controller.text = _enteredText;
      _controller.selection = TextSelection.fromPosition(
        TextPosition(offset: _controller.text.length),
      );
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(title: const Text('Onscreen Keypad Example')),
      body: Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: [
          Padding(
            padding: const EdgeInsets.all(16.0),
            child: TextField(
              controller: _controller,
              readOnly: true,
              decoration: const InputDecoration(
                border: OutlineInputBorder(),
                labelText: 'Input Field',
              ),
            ),
          ),
          OnScreenKeyPad(
            onKeyPress: _onKeyPress,
            keyCellBackgroundColor: Colors.amber,
            enableHapticFeedback: true,
          ),
        ],
      ),
    );
  }
}
3
likes
160
points
39
downloads

Publisher

unverified uploader

Weekly Downloads

A customizable on-screen numeric keypad for Flutter apps. Ideal for PIN entry, authentication screens, and custom input fields with haptic feedback support.

Repository (GitHub)
View/report issues

Documentation

API reference

License

MIT (license)

Dependencies

flutter

More

Packages that depend on onscreen_keypad