首页 > 解决方案 > 颤振键盘类型:TextInputType.number 不适用于 TextEditingController

问题描述

在 Flutter TextFeild 中使用 keyboardType:TextInputType.number 和 TextEditingController 类型的控制器时,无法直接使用数字键盘输入数字。首先,我必须按下任何特殊符号,例如 '.','-' ,然后输入数字。

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

屏幕截图 1st 无法在 2nd 之后键入数字。能打字

标签: flutterflutter-layout

解决方案


查看我的屏幕 你应该试试这个

final TextEditingController price = new TextEditingController();

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

其他解决方案:您添加包: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',
                ),
              ),

参考FilteringTextInputFormatter 这里


推荐阅读