公司要做一款类似微信的即时通讯app 现有如下需求:
当edittext获取到焦点,弹出输入框,并且将listview(recyclerview)顶上去 类似微信QQ的效果,如下图所示

editText获取焦点后

我试了如下几种方法
配置当前的Activity android:windowSoftInputMode="stateAlwaysHidden|adjustResize"
缺点:listview(recyclerview)不会被顶上去
在1的基础上,当软键盘弹出的时候 发送延迟消息把 recyclerView 滚动到底部
mHandler.postDelay()
layoutManager.setStackFromEnd(true); // 滚动到底部
缺点: 有时候滚不到底部 没效果
配置当前的Activity android:windowSoftInputMode="stateAlwaysHidden|adjustPan"
缺点: 底部输入栏部分被挡住 软键盘会顶到光标的高度 如图

在3的基础上 修改editText的属性, 去掉所有margin值 增加paddingbottom
基本可行..底部栏还是有部分会被挡住
缺点: editText 太高了 与设计稿要求高度不符合
各位乡亲父老 即时通讯这块应该很多人做过吧...求指点啊啊啊
最后贴一下布局文件
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号
除了配置当前的Activity
android:windowSoftInputMode="stateVisible|adjustResize"外,还需要:这样listview就根据key board的弹出/隐藏而自动滚动了。
recyclerview没有找到类似的API.