Flutter中使用screen_protector包录屏时如何隐藏键盘?
Flutter中使用screen_protector包录屏时如何隐藏键盘?
嗨,这个问题其实是可以解决的!虽然键盘确实由系统管理,但我们可以通过手动控制避免它出现在录屏里。先看看你遇到的情况:
就像你截图里显示的这样,键盘在录屏结果中格外显眼:
给你几个实用的解决方案:
录屏前主动隐藏键盘:在调用screen_protector的录屏启动方法之前,先执行隐藏键盘的操作。你可以用这两行代码中的任意一个:
// 方法1:通过焦点管理取消输入焦点 FocusManager.instance.primaryFocus?.unfocus(); // 方法2:直接调用系统通道隐藏键盘 SystemChannels.textInput.invokeMethod('TextInput.hide');这样录屏开始时,键盘已经被收起,自然不会出现在录屏结果里。
录屏期间控制键盘弹出:如果你的场景是录屏过程中用户可能会点击输入框,那可以做额外处理:
- 给输入框添加状态判断,当处于录屏状态时,禁用输入框的焦点(设置
enabled: !isRecording),这样用户点击也不会弹出键盘; - 或者监听输入框的焦点变化,一旦检测到焦点获取且正在录屏,立刻执行上面的隐藏键盘代码。
- 给输入框添加状态判断,当处于录屏状态时,禁用输入框的焦点(设置
另外,你也可以检查下screen_protector包的配置项,看看有没有提供忽略系统UI(比如键盘)的参数,如果有的话直接开启就更方便啦,但如果没有的话,上面的手动控制方法完全够用。
备注:内容来源于stack exchange,提问作者NaNoTek
相关产品推荐
相关产品推荐


