问题描述:Textfield有内容,键盘已经弹起,再次点击Textfield区域,然后点击下图按钮,会发现键盘收起来之后又弹起来了,原生并没有此类问题,应是flutter适配问题
解决方案:
1.在pubspec.yaml中依赖:
flutter_keyboard_visibility: ^4.0.0
2.TextField添加属性
focusNode: focusNode,
focusNode的定义
FocusNode focusNode = FocusNode()
如果需要默认获取焦点,并弹起软键盘,同时设置:autofocus: true,
3.原理判断键盘是否可见,键盘不可见时,设置TextField失去焦点即可解决,代码块如下:
所需导包:import 'package:flutter_keyboard_visibility/flutter_keyboard_visibility.dart';
var keyboardVisibilityController = KeyboardVisibilityController(); keyboardVisibilityController.onChange.listen((bool visible) { if(!visible){ focusNode.unfocus(); // 失去焦点 } });