flutterdartcustom-keyboard

Flutter : Keyboard without decimal point


I need a numberInputKeyboard which only has numbers (without decimal symbol). I have tried with keyboardType: TextInputType.numberWithOptions(decimal: false) but still this dosen't help me


Solution

  • One answer recommends using a BlacklistingTextInputFormatter which certainly works in your case with English locale. This however might not work with other locales which use a , instead of a . as decimal seperator.

    So I'd recommend using a WhitelistingTextInputFormatter:

    import "package:flutter/services.dart";
    TextFormField(
      keyboardType: TextInputType.number,
      inputFormatters: [WhitelistingTextInputFormatter.digitsOnly],
    )
    

    This will only allows the digits [0-9].

    UPDATE:

    The WhitelistingTextInputFormatter as been renamed! The following is the up-to date version and no longer deprecated by FilteringTextInputFormatter.allow and provides a shortcut for the digits as well:

    import "package:flutter/services.dart";
    TextFormField(
      keyboardType: TextInputType.number,
      inputFormatters: [FilteringTextInputFormatter.digitsOnly],
    )