Dart 在“颤振”中按enter键时,始终保持软键盘打开

Dart 在“颤振”中按enter键时,始终保持软键盘打开,dart,flutter,Dart,Flutter,有没有一种与颤振兼容的方法可以让应用程序中的键盘始终保持打开状态并专注于某个领域 我也有同样的要求:“我需要键盘始终可见,并专注于屏幕上唯一的编辑文本[颤振TextField] 在安卓系统中,您可以: 在文本字段上设置autofocus=true,以便在加载页面时获得焦点,并使用FocusNode和FocusScope始终将文本字段设置为焦点 以下是一个示例项目: import 'package:flutter/material.dart'; void main() => runAp

有没有一种与颤振兼容的方法可以让应用程序中的键盘始终保持打开状态并专注于某个领域

我也有同样的要求:“我需要键盘始终可见,并专注于屏幕上唯一的编辑文本[颤振
TextField
]

在安卓系统中,您可以:


在文本字段上设置
autofocus=true
,以便在加载页面时获得焦点,并使用FocusNode和FocusScope始终将文本字段设置为焦点

以下是一个示例项目:

import 'package:flutter/material.dart';

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

  class MyApp extends StatefulWidget {
    @override
    _MyAppState createState() => _MyAppState();
  }

  class _MyAppState extends State<MyApp> {
    FocusNode _focusNode = FocusNode();

    @override
    void initState() {
      super.initState();

      _focusNode.addListener(() {
        if (!_focusNode.hasFocus) {
          FocusScope.of(context).requestFocus(_focusNode);
        }
      });
    }

    @override
    Widget build(BuildContext context) {
      return MaterialApp(
        home: Scaffold(
          appBar: AppBar(title: Text('Focus Example')),
          body: Container(
            padding: EdgeInsets.all(20.0),
            child: Column(
              children: <Widget>[
                TextFormField(
                  focusNode: _focusNode,
                  decoration: InputDecoration(
                    labelText: 'Focued field'
                  ),
                  autofocus: true,
                ),
              ],
            ),
          ),
        ),
      );
    }
  }
导入“包装:颤振/材料.省道”;
void main()=>runApp(MyApp());
类MyApp扩展了StatefulWidget{
@凌驾
_MyAppState createState()=>\u MyAppState();
}
类MyAppState扩展了状态{
FocusNode_FocusNode=FocusNode();
@凌驾
void initState(){
super.initState();
_focusNode.addListener(){
if(!\u focusNode.hasFocus){
FocusScope.of(上下文).requestFocus(_focusNode);
}
});
}
@凌驾
小部件构建(构建上下文){
返回材料PP(
家:脚手架(
appBar:appBar(标题:文本(“焦点示例”),
主体:容器(
填充:所有边缘设置(20.0),
子:列(
儿童:[
TextFormField(
focusNode:_focusNode,
装饰:输入装饰(
labelText:“聚焦场”
),
自动对焦:对,
),
],
),
),
),
);
}
}

注意:这种方法会给键盘带来颠簸的效果。我不知道这对你有多重要。

如果有人看到这个答案,有一个更好的选择:
import 'package:flutter/material.dart';

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

  class MyApp extends StatefulWidget {
    @override
    _MyAppState createState() => _MyAppState();
  }

  class _MyAppState extends State<MyApp> {
    FocusNode _focusNode = FocusNode();

    @override
    void initState() {
      super.initState();

      _focusNode.addListener(() {
        if (!_focusNode.hasFocus) {
          FocusScope.of(context).requestFocus(_focusNode);
        }
      });
    }

    @override
    Widget build(BuildContext context) {
      return MaterialApp(
        home: Scaffold(
          appBar: AppBar(title: Text('Focus Example')),
          body: Container(
            padding: EdgeInsets.all(20.0),
            child: Column(
              children: <Widget>[
                TextFormField(
                  focusNode: _focusNode,
                  decoration: InputDecoration(
                    labelText: 'Focued field'
                  ),
                  autofocus: true,
                ),
              ],
            ),
          ),
        ),
      );
    }
  }