Android自定义表情键盘与输入法键盘冲突
2015-07-28 19:27
274 查看
下面输入框在界面的中间位置,点击输入框弹出输入法键盘,如果此时表情键盘打开要收回表情键盘;点击笑脸图标弹出表情键盘,如果此时输入法键盘打开则要收回输入法键盘;
由于点击输入框输入法键盘是自动弹出的,因此我们要在点击输入框时收到通知来根据需要收回表情键盘;
第一种方法:
EditText设置setOnFocusChangeListener,点击笑脸时让EditText失去焦点,点击EditText时其自动获得焦点,我们即可在OnFocusChangeListener里收回表情键盘;
其在页面里只有一个输入框时可以满足需求;但在页面里有多个输入框时,如果带有表情的输入框在页面中下部时,表情键盘会遮住输入框,用户体验太差;
第二种方法:
设置EditText的setOnTouchListener,在里面关闭表情键盘即可;点击笑脸时关闭输入法键盘即可;完美达到预定效果。
表情键盘为什么会遮住输入框尼?
经分析和论证,是因为在页面布局改变时,有焦点的控件时不会被遮挡的,例如点击EditText弹出输入法键盘;
系统输入法弹出时输入框中焦点下面的行会被软键盘遮住,怎么才能让输入框整个露出来尼?
在页面中加入ScrollView,调用其smoothScrollTo滚动至输入框顶部;效果如下:
由于点击输入框输入法键盘是自动弹出的,因此我们要在点击输入框时收到通知来根据需要收回表情键盘;
第一种方法:
EditText设置setOnFocusChangeListener,点击笑脸时让EditText失去焦点,点击EditText时其自动获得焦点,我们即可在OnFocusChangeListener里收回表情键盘;
其在页面里只有一个输入框时可以满足需求;但在页面里有多个输入框时,如果带有表情的输入框在页面中下部时,表情键盘会遮住输入框,用户体验太差;
第二种方法:
设置EditText的setOnTouchListener,在里面关闭表情键盘即可;点击笑脸时关闭输入法键盘即可;完美达到预定效果。
表情键盘为什么会遮住输入框尼?
经分析和论证,是因为在页面布局改变时,有焦点的控件时不会被遮挡的,例如点击EditText弹出输入法键盘;
系统输入法弹出时输入框中焦点下面的行会被软键盘遮住,怎么才能让输入框整个露出来尼?
在页面中加入ScrollView,调用其smoothScrollTo滚动至输入框顶部;效果如下:
相关文章推荐
- 【Android测试】【第五节】LogCat——命令行
- android使用web加载网页的js问题
- android IntentService 简单介绍
- 自定义组合控件
- Android开发中使用Service还是Thread
- Android编程权威指南-第5章:挑战练习
- android JNI 简单demo(2)它JNI demo 写
- Android 异步消息处理机制 让你深入理解 Looper、Handler、Message三者关系
- Android ScrollView下拉图片变大
- Android Studio 模拟器中文显示乱码解决方案
- Android NDK使用addr2line符号化得到错误函数名的问题
- AndroidMaterialDesign动画之CircularReveal
- 博客第一天
- 百度地图出现格子的解决方法
- android ble蓝牙开发略解
- 【移动安全】HacktingTeam Android语音监控实践及分析
- 将图片转化为字节数组更好的方法
- Android Scroller简单用法
- [Android]Toolbar使用详解(三)——源码解析
- Android 系统属性SystemProperty分析