Support the Project ❀️

If this package helps you in production or saves development time, consider supporting β˜•

Buy Me a Coffee

No Keyboard TextField

A Flutter widget that allows text input without opening the soft keyboard while keeping focus active.

Designed for barcode scanners, RFID readers, kiosks, and hardware keyboard workflows.

Unlike a normal TextField, this widget accepts input but prevents the OS virtual keyboard from appearing.


Why this package?

In many enterprise apps (warehouse, logistics, POS, factory systems), input comes from a scanner device, not a user typing.

Normal TextField behavior:

  • Focus gained β†’ mobile keyboard opens
  • UI blocked
  • Scanner workflow disturbed

This widget:

  • Keeps focus
  • Accepts input
  • Blocks virtual keyboard

Perfect scanner UX πŸš€


Features

βœ” Prevents soft keyboard (Android & iOS) βœ” Prevents Windows touch keyboard (TabTip) βœ” Keeps focus active βœ” Supports barcode & hardware scanners βœ” Works in kiosk mode βœ” Desktop typing works normally βœ” Adaptive selection toolbar βœ” Zero dependencies


Platform Support

Platform Supported
Android βœ…
iOS βœ…
Windows βœ…
Linux βœ…
macOS βœ…
Web βœ…

Installation

Add dependency:

dependencies:
  no_keyboard_textfield: ^1.0.3

Then run:

flutter pub get

Usage

final controller = TextEditingController();

NoKeyboardEditableText(
  controller: controller,
  autofocus: true,
  style: const TextStyle(fontSize: 18, color: Colors.black),
  cursorColor: Colors.blue,
  onSubmitted: (value) {
    print("Scanned: $value");
  },
)

Common Use Cases

β€’ Warehouse scanning apps β€’ Delivery tracking systems β€’ POS billing software β€’ Self-service kiosks β€’ Industrial tablets β€’ Attendance systems (RFID/QR)


How it works

The widget overrides Flutter’s EditableText input connection:

  • Mobile β†’ hides soft keyboard
  • Windows β†’ clears text input client (prevents touch keyboard)
  • Desktop/Web β†’ keeps normal typing behavior

So scanner input works without UI interruption.


Notes

Some barcode scanners automatically send an ENTER key after scan. Use onSubmitted to capture full scan value.


Example Workflow

  1. User taps field β†’ no keyboard opens
  2. Scanner scans barcode
  3. Value appears instantly
  4. ENTER triggers submit

Smooth enterprise UX βœ”


Contributing

Pull requests and feature suggestions are welcome.

If you use this package in a production app, feel free to share feedback.


License

MIT License