Flutter- 如何退出多行文本字段中的文本字段?

Den*_*ise 5 dart flutter

我想要一个多行文本字段,可以返回一些段落数据。我使用 textInputAction 属性将“新行”按钮更改为“完成”按钮,尽管它调用了 onEditingComplete,但它仍然没有退出文本字段。我知道这与焦点有关,但我无法确切地弄清楚如何去做。

这是我的代码

TextField(
              onChanged: (text){
                print('On changed is called');
              },
              onEditingComplete: (){
                print('Editing is done ');
              },
              textInputAction: TextInputAction.done,
              maxLines: 6 ,

              controller: textEditingController,
              decoration: InputDecoration(
                  .....
              )
          ),
Run Code Online (Sandbox Code Playgroud)

我怎样才能不专注于按下完成?提前致谢

pom*_*opo 5

您可以使用FocusNode来控制焦点。

import 'package:flutter/material.dart';

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

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'MyApp',
      home: MyWidget(),
    );
  }
}
class MyWidget extends StatefulWidget {
  @override
  State<MyWidget> createState() {
    return _MyWidget();
  }
}
class _MyWidget extends State<MyWidget> {
  FocusNode _focusNode;

  @override
  void initState() {
    super.initState();
    _focusNode = FocusNode();
  }
  @override
  void dispose() {
    super.dispose();
    _focusNode.dispose();
  }
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: Container(
        child: TextField(
          focusNode: _focusNode,
          maxLines: 8,
          autofocus:false ,
          textInputAction: TextInputAction.done,
          onEditingComplete: () {
            print("edit");
            _focusNode.unfocus();
          },
        ),
      )
    );
  }
}
Run Code Online (Sandbox Code Playgroud)