我有一个标签栏应用程序。一个选项卡有文本字段。它显示键盘。我想在按下任何其他选项卡后隐藏键盘。我使用了下面的代码,但它仍然无法在其他选项卡上工作。
return new Scaffold(
key: _scaffoldKey,
resizeToAvoidBottomInset: false,
backgroundColor: blackColor,
body: GestureDetector(
behavior: HitTestBehavior.translucent,
onTap: () {
FocusScope.of(context).requestFocus(new FocusNode());
},
child: Stack(children: <Widget>[
_showForm(),
],)
),
);
你可以像这样在 TabBar() 下使用 onTap:
TabBar(
onTap: (_) => FocusManager.instance.primaryFocus?.unfocus(),
tabs: [
tab1(),
tab2(),
)
这将使每个选项卡都失去键盘的焦点并移动到其他选项卡
在标签更改时使用
FocusScope.of(context).unfocus()
。
当您单击更改选项卡时,请在下面写下:
FocusScope.of(context).requestFocus(new FocusNode());
你只需这样做
TabBar(
onTap: (_) => FocusManager.instance.primaryFocus?.unfocus(),
tabs: [
// add your tabs here...
]
)