当前位置: 首页 > 知识库问答 >
问题:

如何在颤振中创建数字输入字段?

广乐邦
2023-03-14

我找不到在Flutter中创建一个输入字段的方法,可以打开一个数字键盘。这可能与颤振材料小部件?一些github讨论似乎表明这是一个受支持的功能,但我找不到任何关于它的留档。

共有3个答案

路和悌
2023-03-14

通过这个选项,您可以严格限制另一个字符的数量。

 inputFormatters: [WhitelistingTextInputFormatter.digitsOnly],
 keyboardType: TextInputType.number,

要使用上述选项,您必须导入此

import 'package:flutter/services.dart';

使用这种选项,用户不能在文本字段中粘贴字符

鄢英哲
2023-03-14

对于那些希望使TextFieldTextFormField仅接受数字作为输入的用户,请尝试以下代码块:

对于flutter 1.20或更新版本

TextFormField(
  controller: _controller,
  keyboardType: TextInputType.number,
  inputFormatters: <TextInputFormatter>[
    FilteringTextInputFormatter.allow(RegExp(r'[0-9]')),
  ],
  decoration: InputDecoration(
    labelText: "whatever you want",
    hintText: "whatever you want",
    icon: Icon(Icons.phone_iphone)
  )
)

对于1.20的早期版本

TextFormField(
    controller: _controller,
    keyboardType: TextInputType.number,
    inputFormatters: <TextInputFormatter>[
        WhitelistingTextInputFormatter.digitsOnly
    ],
    decoration: InputDecoration(
        labelText:"whatever you want", 
        hintText: "whatever you want",
        icon: Icon(Icons.phone_iphone)
    )
)
云啸
2023-03-14

您可以使用以下方法将TextField的数字指定为keyboardType:

keyboardType: TextInputType.number

检查我的主要设备。省道锉

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';

void main() => runApp(new MyApp());

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    // TODO: implement build
    return new MaterialApp(
      home: new HomePage(),
      theme: new ThemeData(primarySwatch: Colors.blue),
    );
  }
}

class HomePage extends StatefulWidget {
  @override
  State<StatefulWidget> createState() {
    return new HomePageState();
  }
}

class HomePageState extends State<HomePage> {
  @override
  Widget build(BuildContext context) {
    return new Scaffold(
      backgroundColor: Colors.white,
      body: new Container(
          padding: const EdgeInsets.all(40.0),
          child: new Column(
        mainAxisAlignment: MainAxisAlignment.center,
        children: <Widget>[
          new TextField(
            decoration: new InputDecoration(labelText: "Enter your number"),
            keyboardType: TextInputType.number,
            inputFormatters: <TextInputFormatter>[
    FilteringTextInputFormatter.digitsOnly
], // Only numbers can be entered
          ),
        ],
      )),
    );
  }
}
 类似资料:
  • 假设我有一个字符串: 现在我需要从两个字符串中解析23。如何从字符串值中提取该数字或任何数字?

  • 我有一个输入字段,用户只能在其中输入数字。 JSFIDLE演示 问题是:当我输入一个数字(例如,)然后按点()时,或-浏览器会自动删除输入字段的内容(值设置为“”=空字符串)。但是为什么呢?将类型从更改为似乎可以解决问题。但是,我失去了输入字段的向上/向下箭头功能。有什么想法吗?

  • 这就是我想做的: 在文本字段的颤振文档中(https://flutter.io/text-input/)它说您可以通过向装饰传递来删除下划线。但是,这也会消除提示文本。 我不希望任何下划线是否文本字段是重点或不。 更新:更新了公认答案,以反映2020年4月颤振SDK的变化。

  • 我想用di。在《颤栗》中,我加上这个https://pub.dartlang.org/packages/di打包我的项目,我开始读这篇文章https://webdev.dartlang.org/angular/guide/dependency-injection文章,但我不完全理解。 所以没关系:在服务类(例如:MyServices)上使用@Injectable()注释,但是如何注入其他类呢?例如

  • 我正试图解析颤振中的输入,并从中提取双倍值。即用户只能输入十进制数。 为此,我使用TextField: 但在iOS设备上,我的键盘上有数字和逗号(,),而不是点()。当用户输入逗号时,我正在分析字符串,出现如下错误: 处理这件事最好的方法是什么?一些肮脏的解决方案是: 使用TextInputType.number有选项(签名:真,十进制:真)-这给键盘不仅有数字和用户输入点。 也许可以先用点代替逗

  • 灵感来源于如何在R?中创建数字序列的帖子 问题: 我想在NumPy中制作以下序列。 我尝试了以下方法: Non-generic and hard coding using 上面的解决方案是通用的,但我想知道是否有更有效的方法在NumPy中实现。