Flutter 侧滑会导致 TextField 获取不到焦点?
最近 Flutter写功能的时候发现一个 bug :侧滑会导致 TextField 获取不到焦点 无法继续编辑文本内容
flutter版本是 3.22.1 目前是最新的版本 以前的版本不确定有没有类似情况
场景:
ios 自带有侧滑功能, A界面有 TextField, B 界面也有 TextField
触发:
从 A 界面跳转到 B 界面 然后在 B 界面触发侧滑 返回到 A界面或者侧滑一点还停留在 B 界面
查找问题:
断点调试发现 没侧滑或者点击返回按钮时 FocusNode#b87c0(context: Focus)
但是侧滑返回的时候 FocusNode#b87c0(context: Focus, NOT FOCUSABLE)
多了一个 NOT FOCUSABLE
会将canRequestFocus改为false
解决:
统一处理方法:新建CustomFocusNode类 将canRequestFocus设置为true
1 | class CustomFocusNode extends FocusNode { |
再将使用到 FocusNode focusNode = FocusNode();
初始化的地方 替换为 CustomFocusNode focusNode = CustomFocusNode();
即可。