美文网首页
关于表情栏/功能栏和键盘切换跳闪问题的一些思考

关于表情栏/功能栏和键盘切换跳闪问题的一些思考

作者: 恒泪 | 来源:发表于2020-09-29 16:42 被阅读0次

1、问题

最近公司需要独立开发一个IM聊天应用,UI全定制,接着就发生了键盘和表情栏切换时的一些不愉快。

表情栏和键盘出现的问题
从左往右看图,在键盘已弹出的情况下点击打开功能栏(左图),此时键盘应该是立刻被关闭而功能栏应该被打开,但是却同时出现了键盘和表情栏/功能栏,功能栏被顶起了(中图)。在功能栏出现大约0.1秒后键盘才收起,变成(右图)的样子。
注:我保证,在打开表情栏/功能栏的同时我已经调用了hideSoftKeyboard()来关闭键盘了。

2、初步分析

键盘的开关是异步的,给相关的事件添加延时开关可以解决这个问题。例如handler.postDelay()
然而,在不同的机型上结果不一样,且分有无开启系统动画的情况。所以这个方法不可靠

3、参考

我百度了下,又github、掘金了下,找到了几篇可行的文章和例子。首先感谢下下方链接作者的的例子
https://github.com/leavesC/Keyboard 。直接上源码


这个作者使用的是postDelay()。这个跟我的初步分析是符合的,键盘的开关是异步的且时间不确定的。

4、解决办法

既然写死postDelayed的延迟时间不可靠,那么,我们可以监听键盘打开/关闭以后再进行显示/隐藏表情栏或功能栏。

5、总结

推荐大家先运行下上方链接的源码理解后再进行修改,因为键盘和表情/功能栏切换还涉及到布局高度锁定的操作。

相关文章

  • 关于表情栏/功能栏和键盘切换跳闪问题的一些思考

    1、问题 最近公司需要独立开发一个IM聊天应用,UI全定制,接着就发生了键盘和表情栏切换时的一些不愉快。 从左往右...

  • 无标题文章

    私信 1.QQ表情换为静态表情,只保留一半核心表情;减少列数,便于点击2.发送文字后缓慢出现的问题。导航栏跳变,闪...

  • 自定义键盘工具栏——KeyboardToolBar

    今天项目中需要给键盘加上一个工具栏,功能为实现上一步,下一步的textfield的切换和点击“完成”收起键盘,功能...

  • iOS 开发遇到的那些事1

    一. 状态栏 1.黑暗模式切换状态栏的电量栏颜色无法切换问题 2. 特殊情况状态栏背景色无法修改问题 二. UI...

  • vue侧栏组件实现

    1.效果预览: 2. 已实现功能: 点击顶部工具栏,打开侧栏 点击关闭按钮,关闭侧栏 点击顶部不同工具栏,切换侧栏...

  • 微信小程序实现tap切换(可手势滑动、导航跟随滚动)

    开篇 直接说重点,本篇内容主要实现的功能有:导航栏tap切换、导航栏跟随滚动居中显示、手势滑动切换。目前网上能看的...

  • LVDS 闪屏,黑屏有背光

    应用页面切换和下拉状态栏闪屏 lcd_dclk_freq Pixel Clock Frequency 把LV...

  • 【Unity3D】基础知识学习笔记

    1、基础知识: 标题栏 菜单栏 工具栏:变换工具、gizmos切换、播放控件、层列表、布局列表 功能窗口 2、资源...

  • (转)Unity3D基础知识学习笔记

    1、基础知识: 标题栏 菜单栏 工具栏:变换工具、gizmos切换、播放控件、层列表、布局列表 功能窗口 2、资源...

  • iOS导航栏管理

    实现一个简单管理导航栏的方法如下 出现一个问题,就是页面进行切换时,导航栏上有阴影一闪而过。通过查看视图结构发现,...

网友评论

      本文标题:关于表情栏/功能栏和键盘切换跳闪问题的一些思考

      本文链接:https://www.haomeiwen.com/subject/bcpeuktx.html