Flutter keyboardType:TextInputType.number not working with TextEditingController

Viewed 1343

In Flutter TextFeild While using keyboardType:TextInputType.number along with controller of type TextEditingController, unable to enter digits using number keyboard directly. First I have to press any special symbol such as '.','-' , and then type the numbers.

final expenseAmount = TextEditingController();
TextField(
          decoration: InputDecoration(
            labelText: "Amount",
          ),
          controller: expenseAmount,
          keyboardType: TextInputType.number,
        ),

Screen Shots 1st unable to type number 2nd after . able to type

2 Answers

change this line

final expenseAmount = TextEditingController();

to

TextEditingController expenseAmount = TextEditingController();

i think this will fix your problem.

See My screen You should try this

final TextEditingController price = new TextEditingController();

TextFormField(
   controller: price,
   keyboardType: TextInputType.number,
   decoration: InputDecoration(
      border: OutlineInputBorder(),
      labelText: 'Amount',
      hintText: 'MRP',
     ),
     textInputAction: TextInputAction.done,
   ),

Other Solution: you add the package: import 'package:flutter/services.dart';

    TextFormField(
                keyboardType: TextInputType.number,
                inputFormatters: [
                  FilteringTextInputFormatter.allow(
                    RegExp(r'[0-9]'),
                  ),
                ],
                decoration: InputDecoration(
                  border: OutlineInputBorder(),
                  labelText: 'Price',
                  hintText: '0.00',
                ),
              ),

Refer FilteringTextInputFormatter here

Related