Flutter 点击空白的地方让软键盘消失
warning:
这篇文章距离上次修改已过188天,其中的内容可能已经有所变动。
在Flutter中,可以使用TextField
的onTap
回调来处理点击事件,并通过FocusScope.of(context).unfocus()
来取消输入焦点,从而让软键盘消失。以下是一个简单的示例代码:
import 'package:flutter/material.dart';
void main() => runApp(MyApp());
class MyApp extends StatelessWidget {
@override
Widget build(BuildContext context) {
return MaterialApp(
home: Scaffold(
body: Center(
child: TextField(
onTap: () {
FocusScope.of(context).requestFocus(FocusNode());
},
),
),
),
);
}
}
在这个例子中,当用户点击TextField
时,实际上不会产生任何作用,因为我们没有为TextField
设置任何controller
或者focusNode
。点击时,我们创建了一个临时的FocusNode
并通过requestFocus
方法将输入焦点移走,从而让软键盘隐藏。如果你希望在点击其他空白区域也能够实现同样的效果,可以将TextField
放入一个GestureDetector
中:
GestureDetector(
onTap: () {
FocusScope.of(context).requestFocus(FocusNode());
},
child: TextField(),
)
这样,点击GestureDetector
区域内的任何地方都会触发取消焦点的操作,导致软键盘隐藏。
评论已关闭