Android自定义表情键盘与输入法键盘冲突

来源:互联网 发布:虚拟主机绑定域名 编辑:程序博客网 时间:2024/05/16 13:38

下面输入框在界面的中间位置,点击输入框弹出输入法键盘,如果此时表情键盘打开要收回表情键盘;点击笑脸图标弹出表情键盘,如果此时输入法键盘打开则要收回输入法键盘;
这里写图片描述
由于点击输入框输入法键盘是自动弹出的,因此我们要在点击输入框时收到通知来根据需要收回表情键盘;

第一种方法:
EditText设置setOnFocusChangeListener,点击笑脸时让EditText失去焦点,点击EditText时其自动获得焦点,我们即可在OnFocusChangeListener里收回表情键盘;
其在页面里只有一个输入框时可以满足需求;但在页面里有多个输入框时,如果带有表情的输入框在页面中下部时,表情键盘会遮住输入框,用户体验太差;

第二种方法:
设置EditText的setOnTouchListener,在里面关闭表情键盘即可;点击笑脸时关闭输入法键盘即可;完美达到预定效果。

表情键盘为什么会遮住输入框尼?
经分析和论证,是因为在页面布局改变时,有焦点的控件时不会被遮挡的,例如点击EditText弹出输入法键盘;

系统输入法弹出时输入框中焦点下面的行会被软键盘遮住,怎么才能让输入框整个露出来尼?
在页面中加入ScrollView,调用其smoothScrollTo滚动至输入框顶部;效果如下:
这里写图片描述

0 0
原创粉丝点击