这是一种魔术,但是当您保持底部状态不变时,它会起作用:
class _SecondPageState extends State<SecondPage> { final _bottomSheet = Container( color: Colors.lightGreen, height: 90, child: Center(child: Container(width: 200, child: TextField())), ); @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('it does not work here'), ), bottomSheet: _bottomSheet, ); }}当我注意到该
build方法在
TextField激活时被调用了两次时,我想到了。
UPD:
在我看来,保持BottomSheet的状态有助于保持对输入字段的关注。没有这种技巧,由于键盘打开第二次重画窗口小部件时,输入字段将失去焦点,键盘将关闭。问题仍然存在-
当路由器堆栈为空时,为什么不会出现焦点丢失?



