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

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

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

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

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

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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值