问题描述
- 在使用RecyclerView实现仿微信对话功能时,出现点击Edittext弹出键盘遮住对话内容的问题。
解决办法
- 在清单文件中设置
android:windowSoftInputMode="adjustResize|stateHidden"
或者设置android:windowSoftInputMode="adjustPan|stateHidden"
- 设置
mLayoutManager.setStackFromEnd(true);
或者mLayoutManager.setStackFromEnd(true);
注意重点来了
- 上面的一系列设置都没有用,只需要设置
RecyclerView.scrollToPosition(list.size() - 1);
- 再设置
mLayoutManager.setStackFromEnd(true);
- 将RecyclerView用ScrollView包裹起来,不用怀疑,QQ就是这样的。然后获取屏幕的高度和键盘的高度,计算出ScrollView需要滑动到的位置。
上面的所说的设置当中adjustResize对我们不会有影响,adjustPan设置之后会将自己的title顶出边界之外。
若设置setStackFromEnd(true),那么你打出的对话是紧贴底部的,显然微信发送消息不是这样的。设置setStackFromEnd(true),那么你发送的对话顺序是反转过来的,当然适当调整也能实现。