我找不到在Flutter中创建一个输入字段的方法,可以打开一个数字键盘。这可能与颤振材料小部件?一些github讨论似乎表明这是一个受支持的功能,但我找不到任何关于它的留档。
通过这个选项,您可以严格限制另一个字符的数量。
inputFormatters: [WhitelistingTextInputFormatter.digitsOnly],
keyboardType: TextInputType.number,
要使用上述选项,您必须导入此
import 'package:flutter/services.dart';
使用这种选项,用户不能在文本字段中粘贴字符
对于那些希望使TextField
或TextFormField
仅接受数字作为输入的用户,请尝试以下代码块:
对于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)
)
)
您可以使用以下方法将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中实现。