我的应用程序中有以下抽屉:
当我按下密码TextFormField时,我得到以下内容:
如您所见,覆盖了密码TextFormField.我按照建议here试图解决这个问题:
class _LoginDrawer extends State<LoginDrawer> {
static var _listViewScrollController = new ScrollController();
@override
Widget build(BuildContext context) => new Drawer(
child: new ListView(
controller: _listViewScrollController,
children: <Widget>[
// ...
new Padding(
padding: const EdgeInsets.symmetric(horizontal: 16.0),
child: new GestureDetector(
onTap: () {
SchedulerBinding.instance.addPostFrameCallback((_) {
_listViewScrollController.jumpTo(
_listViewScrollController.position.maxScrollExtent);
});
},
child: new TextFormField(
obscureText: true,
decoration: new InputDecoration(labelText: "Password")),
),
),
],
),
);
}
但这并没有解决它,该应用程序只是像以前一样.还有一些人建议使用反转的ListView然后使用listViewController.jumpTo(0.0),但这导致了不必要的效果,所有小部件从底部开始:
最佳答案 根据@aziza发布的问题,它涉及到这个github问题:
https://github.com/flutter/flutter/issues/7032
解决方案是使用一个小部件,将元素移出键盘.这是一个颤抖的错误.