我想要一个多行文本字段,可以返回一些段落数据。我使用 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)
我怎样才能不专注于按下完成?提前致谢
您可以使用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)
| 归档时间: |
|
| 查看次数: |
5394 次 |
| 最近记录: |