首页 > 其他分享 >Flutter 安卓系统输入框获取焦点虚拟键盘不弹出的问题。

Flutter 安卓系统输入框获取焦点虚拟键盘不弹出的问题。

时间:2024-12-27 13:22:15浏览次数:4  
标签:SystemChannels 焦点 安卓 键盘 输入框 虚拟 不弹 Flutter

Flutter如果你要实现 手动点击输入框进行弹出虚拟键盘,但是通过FocusNode使输入框获取到焦点不弹出虚拟键盘的业务方式。
大致的核心实现代理是:

TextField(
...
  onTap: () {
    setState((){
      _openIndex = i;
    });
    // TODO 1
  },
  keyboardType: _openIndex == i ? TextInputType.number : TextInputType.none,
  ...
)

这样实现的话,无论是点击还是通过FocusNode获取到焦点,都不会弹出虚拟键盘。
我们需要将当前节点失去焦点后,重新获取到焦点才能弹出虚拟键盘。

FocusScope.of(context).unfocus();
WidgetsBinding.instance.addPostFrameCallback((_) {
  _focusNextIndexByBarCode(autoNextFocus: false);
});

TODO 1处替换如上代码后,就可以弹出虚拟键盘了,但是有个缺点就是手动点击输入框,会将当前虚拟键盘关闭并重新弹出。

在此附上弹出和隐藏虚拟键盘的调用方式。

// 显示键盘
SystemChannels.textInput.invokeMethod('TextInput.show');

// 隐藏键盘
SystemChannels.textInput.invokeMethod('TextInput.hide');

Flutter SystemChannels,可传TextInput.show进行只弹出虚拟键盘

标签:SystemChannels,焦点,安卓,键盘,输入框,虚拟,不弹,Flutter
From: https://www.cnblogs.com/XingXiaoMeng/p/18635462

相关文章

  • 简单实用的jQuery表单输入框浮动标签动画特效插件
    phAnimate是一款简单实用的jquery表单输入框浮动标签动画特效插件。通过该插件,你可以非常轻松的为表单input元素添加浮动标签动画效果。 在线预览 下载  使用方法在页面中引入jquery和phanimate.jquery.js文件。<scripttype="text/javascript"src="js/jquery.min.j......
  • 安卓外接键盘快捷键
    仅供参考,暂未测试方向键(在主屏幕)=切换图标选中位置(在桌面的图标之间切换)Tab(在主屏幕)=切换图标选中位置(从桌面切换到快速启动栏)Esc=后退Win+backspace=后退PrintScreen=截屏(废话)Ctrl+Esc=弹出菜单Ctrl+Alt+Del=直接重启?没任何提示(慎用!!)Alt+space=......
  • Windows交叉编译MNN-3.0.0安卓版本库(通过WSL2)
    一、写在前面昨天写了在WIN10上面通过AndriodStudio来编译MNN的demo,通过解压.apk文件来得到libMNN.so文件。今天在记录一下使用WSL2来编译MNN-Andriod。二、WSL2的安装由于不是本篇的主题,故不在这里进行展开,后续会补充步骤链接。三、WSL2编译环境配置1、NDK-Linux安装上篇......
  • Windows交叉编译MNN-3.0.0安卓版本库
    一、写在前面以下的步骤、流程都是基于MNN的文档,再结合自己的实践得出的,仅作为参考。博主的环境是windows10专业版MNN文档MNN的Github仓库地址二、下载MNN-3.0.0主库在GitHub仓库进行项目克隆,截至2024.12.25,最新版本就是为3.0.0:gitclonehttps://github.com/alibaba/MNN......
  • vue中做一个最多输入一位小数且可以为负数的输入框(包含最前面最后面为小数点及多个-符
    需求背景日常开发中会有对input做校验的需求 例如做一个只可以输入一位小数及可以为负数的输入框 这时候会出现0开头、多个--、多个小数点插入或开头结尾为小数点的情况实现过程<el-inputstyle="width:80px;"v-model="dataForm.low"......
  • 开发安卓设备端应用
    开发安卓设备端应用在安卓设备端,开发者需要运行一个安卓应用(文档中也称为小程序Launcher),用来进行设备注册、运行小程序进行VOIP通话等操作。1.接入WMPF并运行小程序在安卓平台上,小程序视频通话能力是在小程序中实现的。需要由设备端运行的安卓应用拉起开发者开发的小程序......
  • 网页直播/点播播放器EasyPlayer.js如何实现安卓流媒体播放器播放同步录像?
    随着流媒体技术的迅速发展,H5流媒体播放器已成为现代网络视频播放的重要工具。其中,EasyPlayer.js视频流媒体播放器作为一款功能强大的H5播放器,凭借其全面的协议支持、多种解码方式以及跨平台兼容性,赢得了广泛的关注和应用。音视频码流的metadata,即MediaFormat,是从MediaCodec取出来......
  • 记录---uniapp 安卓端实现录音功能,保存为amr/mp3文件
    ......
  • SpringBoot基于安卓的高校社交App系统(源码+vue+uinapp+部署文档等)
    详细视频演示文章底部名片,获取项目的完整演示视频,免费解答技术疑问项目介绍  SpringBoot基于安卓的高校社交App系统,旨在为高校学生打造一个专属的线上社交互动平台,融合校园生活、学习交流、兴趣拓展等多元功能,打破校园人际交往的时空限制,增进同学间的了解与合作,丰......
  • APP 渗透测试指南(一)--- 安卓测试环境部署(超级详细)(成为移动黑客,手机kali安装最简单教
    绪论如果各位师傅觉得有用的话,可以给我点个关注~~如果师傅们有什么好的建议也欢迎联系我~~感谢各位师傅的支持~~投票   不好意思各位师傅,最近断更了好久,工具太多了写不过来了,后续会继续保持更新!!!想麻烦各位师傅进行一下投票,后续会优先更新投票数量最多的内容! ......