Flutter:有没有办法用英语打开键盘?

时间:2018-10-08 16:06:22

标签: flutter

在Flutter中,有没有一种方法可以强制我单击TextForm时使用英语打开的键盘?

我希望TextField仅包含英文字符。有办法吗?

4 个答案:

答案 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,
            ),
          )
        ],
      ),
    );
  }
}