android键盘表情流畅切换实现
来源:互联网 发布:nginx php7 fpm 编辑:程序博客网 时间:2024/05/18 00:23
android 键盘表情流畅切换
大家都用微信,在聊天页面,软键盘与表情栏,工具栏之间的切换非常流畅,没有引起输入bar的上下抖动,体验非常好。这里讲一讲它的实现原理。
将表情栏的高度设置为与软键盘一样。
这里略微绕一点,因为android没有提供API,但是方案早已泛滥,基本思路一致:
1. 在AndroidManifest.xml中设置Activity属性 adjustResize
2. 代码中,注册GlobalLayoutListener,获取软键盘高度,设置表情栏,输入栏高度。
这里就不提供代码了,一搜一堆。
页面顶层View高度设成具体值
仅仅将表情栏高度设置成与软件盘一样高时不够的,如在软键盘切换表情时就会出现输入条被高高顶起再落下的动画,体验很不好。如何做到像微信那样切换时输入条高度不变呢?
- 在软键盘没有弹出时,将顶层页面高度从match_parent设成具体值 。
- 当软键盘弹出时,将表情栏的parentView(高度与软键盘一样)设置为显示。
这样,软键盘弹出时,window的高度是减少了,减少了软键盘的高度。但是由于Activity中顶层View的高度是定值,所以页面高度不变。窗口大小小于View大小,只能显示View的上半部分。此时显示表情栏ParentView,将输入条顶起,高度刚刚好。表情,软键盘之间切换时,输入条的位置根本就没有变,所以体验非常好。
RootView高度变化问题
这个高度具体值并不是一定不变的,如部分手机底部的虚拟导航条可以显示,可以隐藏。
- 监听GlobalLayoutListener,当RootView高度变化时,重新设置顶层View高度。
参考
一牛人写的巨NICE的实例,没有会比它更好的了!快来STAR吧!
https://github.com/cpoopc/SmoothEmotionKeyBoard
- android键盘表情流畅切换实现
- Android-->键盘表情切换的终极解决方案
- 键盘表情切换
- Android-->如何优雅的切换表情和键盘(原理)
- Android 表情面板切换键盘闪烁问题的解决
- android 表情键盘
- android使用Vitamio实现视频播放大小屏流畅切换
- Android: 实现类似QQ、微信的表情输入键盘
- Android: 实现类似QQ、微信的表情输入键盘
- Android: 实现表情输入键盘的另外一种思路
- 表情键盘 文字键盘 切换(保证了表情键盘也有键盘通知)
- iPhone表情键盘的实现
- iOS 自定义键盘+表情布局实现
- 一步一步教你实现Emoji表情键盘
- android表情实现方案
- Android 输入法表情实现
- IOS 禁止用户将键盘切换到 Emoji 表情
- android表情键盘完美解决闪动问题
- SQL Server中使用一条SQL插入多条数据
- iOS侧滑菜单实现
- Unsupported major.minor version 51.0解决办法
- iOS开发拓展篇—音频处理(音乐播放器1)
- 20151024_002_C#基础知识(ArrayList,Hashtable,List,Dictionary)
- android键盘表情流畅切换实现
- 1.时间复杂度
- 使用Spring进行切面(AOP)编程
- IntelliJ IDEA 14 注册码
- 如何成为一名合格的程序员
- 避免碌碌无为的感觉
- 兔子问题---细说斐波那契数列
- iOS开发拓展篇—音频处理(音乐播放器2)
- <<Big Data: Principles and Best Practices of Scalable Realtime Data Systems>>读书笔记