Solución:
En lugar de hacerlo con NotificationListener, envuelva su SingleChildScrollView dentro de GestureDetector y descarte el teclado de esta manera:
GestureDetector(
behavior: HitTestBehavior.opaque,
onPanDown: (_) {
FocusScope.of(context).requestFocus(FocusNode());
},
child: SingleChildScrollView(...),
);
Hemos creado este sencillo widget. Envuelva su vista desplazable en este widget y listo.
/// A widget that listens for [ScrollNotification]s bubbling up the tree
/// and close the keyboard on user scroll.
class ScrollKeyboardCloser extends StatelessWidget {
final Widget child;
ScrollKeyboardCloser({@required this.child});
@override
Widget build(BuildContext context) {
return NotificationListener<ScrollNotification>(
onNotification: (scrollNotification) {
if (scrollNotification is UserScrollNotification) {
// close keyboard
FocusScope.of(context).unfocus();
}
return false;
},
child: child,
);
}
}
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)