Flutter 点击空白的地方让软键盘消失
warning:
这篇文章距离上次修改已过444天,其中的内容可能已经有所变动。
在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区域内的任何地方都会触发取消焦点的操作,导致软键盘隐藏。
评论已关闭