在Flutter中,有没有一种方法可以强制我单击TextForm
时使用英语打开的键盘?
我希望TextField
仅包含英文字符。有办法吗?
答案 0 :(得分:4)
使用此选项将启动具有预定义语言的默认键盘应用程序。
FocusScope.of(context).requestFocus(FocusNode());
无法以特定语言启动键盘。用户必须从键盘设置的末端开始。但是,您可以使用RegExp
检查所有字符是否都是英文。
答案 1 :(得分:3)
这可能有帮助!
SystemChannels.textInput.invokeMethod('TextInput.show');
每当调用requestFocus来防止这种情况发生时:
答案 2 :(得分:1)
据我所知,没有办法以某种语言启动键盘。
要使用预定义语言打开键盘,您需要像这样在 autoFocus
小部件中启用 TextField
:
TextField(
autofocus: true,
)
答案 3 :(得分:0)
class _MyHomePageState extends State<MyHomePage> {
final _focusNode = FocusNode();
@override
void initState() {
super.initState();
}
@override
void dispose() {
_focusNode.dispose();
super.dispose();
}
@override
Widget build(BuildContext context) {
return Scaffold(
body: Column(
children: <Widget>[
RaisedButton(
child: Text('PROVIDE FOCUS'),
onPressed: () {
FocusScope.of(context).requestFocus(_focusNode);
SystemChannels.textInput.invokeMethod('TextInput.show');
},
),
IgnorePointer(
child: TextField(
focusNode: _focusNode,
),
)
],
),
);
}
}