Flutter实战项目-第八篇 监听键盘弹起
概要
- 监听应用软键盘收齐弹出
一、WidgetsBindingObserver
WidgetsBindingObserver类可以使用于监听页面的生命周期,根据用户时间需求响应响应时间。
didChangeMetrics在页面高度发生变化的时候会触发该回调。
class Chat extends StatefulWidget {const Chat({ Key? key }) : super(key: key);static const routeName = '/chat';@overrideState<Chat> createState() => _ChatState();
}class _ChatState extends State<Chat> with WidgetsBindingObserver{@overridevoid initState() {super.initState();//初始化WidgetsBinding.instance?.addObserver(this);}@overridevoid didChangeMetrics() {super.didChangeMetrics();WidgetsBinding.instance?.addPostFrameCallback((_) {setState(() {if(MediaQuery.of(context).viewInsets.bottom==0){//关闭键盘}else{//显示键盘}});});}@overridevoid dispose() {scrollController.dispose();WidgetsBinding.instance?.removeObserver(this);super.dispose();}Widget build(BuildContext context) {return Containe();}
}
Flutter实战项目-第八篇 监听键盘弹起相关推荐
- 从零开始写项目第八篇【将未完成的项目发布在Tomcat上】
tags: 从零开发项目, title: 从零开始写项目第八篇[将未完成的项目发布在Tomcat上] 将项目打包成war包 我使用的是Maven来构建项目的,因此打war包也是非常方便的. 参考链接: ...
- 项目需求之Android 监听键盘的弹起和隐藏setVisibility(View.GONE)方法失效
最近比较忙咯,因为在做密码密码管理模块,所以一直在跟EditText打交道,我也写了几篇跟EditText有关的博客了,今天又遇到需求了,需要监听系统键盘的弹起和隐藏. 需求大致是这样的: 1.当键盘 ...
- Flutter实战项目-第十二篇 多线程isolate
概要 isolate UI阻塞 一.dart线程概念 dart语言默认是单线程的,这就导致了如果在处理一个耗时比较长事务的话,很有可能会造成UI渲染的阻塞.举例子:我在页面创建一个动画,然后执行一个计 ...
- CG动画制作项目第八篇:mentalray的渲染方式
在我们日常所用的maya里,大部分都是直接使用maya自带的渲染工具,可是新手中(像我之前就是,当然现在也是个新手)基本都用一开始自带的四个渲染工具,(如下图) 而今天我们要讲的就是mentalray ...
- 100个Python实战项目(八)使用 OpenCV 制作简单图像动画
- H5监听键盘弹起收回,用法超简单!兼容Android、iOS。
引入以下代码,仅需2行代码即可监听! /*** 兼容Android.iOS各浏览器* H5键盘监控弹出(KeyboardUp).收起(KeyboardDown)事件定义* auth: huaichen ...
- Vue3+node.js网易云音乐实战项目(八)
播放界面实现 1.准备工作 2.顶部布局 3.中部唱片部分布局 4.底部部分布局 最后一个页面还没写完,由于我要去比赛,所以暂时先写到这,等放假了再写 其他页面可以看我页面专栏 Vue3实战项目-网易 ...
- vs extension 监听键盘输入
背景 有一个这样的业务需求:我们希望监听用户在编写代码时的键盘事件 基本分析 part1 如果把vs看做一个桌面应用程序,那么我们就是希望介入到这个窗体应用的键盘事件处理过程 当然我直观上认为vs不会 ...
- android 键盘弹出 监听,奇技淫巧之-Android监听键盘弹出与隐藏事件
CaptainAndroid.png 相信看到这个标题,大家都会潜意识觉得:Activity中没有可以复写的方法么?或者说,没有什么listener可以让我们使用么? 抱歉,真的没有,我们潜意识都是以 ...
最新文章
- 实验一:使用ADO.NET方式读数据
- linux ssh连接慢
- pert计算公式期望值_PERT和三点估算技术
- sap生产工单报工_【案例】MES系统助力亨通电缆车间生产效率提升25%
- VirtualBox的四种网络接入模式
- 用Web Developer工具栏发现SEO问题的方法
- Python Flask Web 第四课 —— 模板引擎Jinja2
- 第一届佳木斯大学程序设计校赛题解
- OpencV使用fitEllipse拟合椭圆后,获取椭圆参数
- java dateutils工具类_Java日期工具类DateUtils详解(转)
- Spring Boot配置QueryDSL(生成Query查询实体类,查询数据)
- 未认证小程序关联已认证公众号,复用公众号资质快速进行认证
- 服务器文件系统报错处理办法
- [附源码]SSM计算机毕业设计中华美食网站JAVA
- “智慧机场3.0”样板工程 北京大兴机场物联网系统有多牛?
- 华硕天选2键盘背光灯切换颜色
- oracle9i rac for aix,oracle 11gR2 rac for aix 第二个节点运行root.sh不成功问题处理
- 计算机软考答题卡填涂格式,全国计算机软考网络工程师填涂答题卡须知
- C# json解析字符串总是多出双引号_json从立地到成佛
- 网络爬虫,淘宝API商品详情测试(抓取详情数据)
热门文章
- js 获取当前是这个年份的第几周+获取这周的开始和结束日期
- 爬取前程无忧数据,并存入数据库
- 怎样迅速搭建运营级直播服务器,用直播源码来完成属于你的专属直播服务
- 如何用Python画一只肥肥的柯基狗狗——turtle库绘制椭圆与弧线实践
- 工程师如何对待开源——一个老工程师的肺腑之言
- Greenplum实战--standby master的模拟故障与修复
- 软件测试简历包装我们会了,但测试人的自我“包装”呢?HR自我介绍包装小技巧【建议收藏】
- 2018年 吉林大学 软件工程 967考研经验分享
- Maira-云视频解析(使用方法)
- 计算机专业欧美排名,数字媒体艺术大学排名TOP3世界榜一览!