首先非常感谢 @陈旭金-小金子 我是根据他的博客修改而来。

http://blog.csdn.net/u011692041/article/details/51933987#comments

他的原文。如果你们也遇到这样的需求可以看他的,看不懂再回来。

/**

* 在聊天的内容比较多的时候没有问题,当时在内容比较少的时候上面的内容就会看不见,所以这个方法也是不可取的

* @param root 最外层布局

*/

private void controlKeyboardLayout(final View root) {

root.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {

private Rect r = new Rect();

@Override

public void onGlobalLayout() {

//获取当前界面可视部分

ChatActivity.this.getWindow().getDecorView().getWindowVisibleDisplayFrame(r);

//获取屏幕的高度

int screenHeight = ChatActivity.this.getWindow().getDecorView().getRootView().getHeight();

//此处就是用来获取键盘的高度的, 在键盘没有弹出的时候 此高度为0 键盘弹出的时候为一个正数(可以自己打Log测试)

int heightDifference = screenHeight - r.bottom;

//内容部分的View

ViewGroup.LayoutParams layoutParams = mChatSwipeLayout.getLayoutParams();

//拿到需要调整的高度,这里需要按照实际情况计算你们自己的高度

//拿到 屏幕高度 -状态栏高度 - 键盘高度 = 获得内容(聊天recyclerView)的高度

int height = screenHeight - stateHeight - heightDifference ;

//如果计算出来的和原来的不一样,那么就调整一下

//给内容View 设置新的高度

layoutParams.height = height;

//该activity根布局重新布局

mRootView.requestLayout();

//滑动recyclerView到最底部

moveToPosition(mLinearLayoutManager,mRvList,mChatRecAdapter.getList().size()-1);

}

});

}这是聊天代码关键方法。(我这里有一个swiperefreshLayout包裹recyclerView所以我调整swiperefreshLayout的高度)

最后记得要滑动recyclerView。

我的布局文件使用了状态栏沉浸。

android:fitsSystemWindows="true"

相信大家也有可能因为这个问题烦恼,也找过

AndroidBug5497Workaround

但是相信效果肯定不是很好。

所以可以用以上的方法。

对了 在清单文件配置中。 使用的是

android:windowSoftInputMode="adjustResize"

android 弹出遮盖界面,Android软键盘弹出界面遮挡解决方案。相关推荐

  1. 解决微信小程序IOS中使用picker弹出内容和手机软键盘重叠的问题

    解决微信小程序IOS中使用picker弹出内容和手机软键盘重叠的问题 项目需求: 一个信息提交页面:有input输入框,有picker选择器 遇到的问题: 点击input输入框时,手机自动弹出键盘,但 ...

  2. Android 模仿QQ登录界面解决软键盘遮挡问题

    Android 软件盘弹出可能会遮挡住界面上的某些控件.当 windowSoftInputMode 为 adjustPan 时,一般不会挡住 EditText,但是假如 EditText 下面是一个登 ...

  3. android 弹出编辑框,Android编程实现的EditText弹出打开和关闭工具类

    本文实例讲述了Android编程实现的EditText弹出打开和关闭工具类.分享给大家供大家参考,具体如下: 需求: 使用代码实现Android的输入框EditText对键盘的关闭弹出的实现. 代码: ...

  4. 承接上一篇:说说评论弹出editext,计算软键盘高度,使listview,recyclerview上滑指定高度

    最近项目中遇到问题:就是当软键盘弹出,editext输入时,遮挡listview,recyclerview条目,体验效果不好: 网上搜集,验证,找了个好的方法,希望能给大家项目中带来帮助: 通过监听e ...

  5. android弹出选择usb,android 解决:默认情况下用于该USB设备 自动获取USB操作权限...

    很多android 的应用在使用USB设备时,总会遇到一个很烦人的问题. 即每次都会弹出对话框: 每次插入USB设备,都会弹出.每次选上默认情况下使用该USB设备.但总还是会弹出.用户体验很差. 似乎 ...

  6. 软键盘弹出时popwindow_PopupWindow与软键盘冲突

    一.说明 笔记主要是记录一些本人在开发当中的学习和使用笔记.笔记内容包含一些本人觉得重要的知识点.本人易犯的错误等. 由于本人水平有限,其中出现的错误或者不合理的地方望各位读者多多包含,并指出其中不合 ...

  7. android 弹出菜单 toast,Android学习第二天:Toast(提醒)、Menu(菜单)、Intent的显式和隐式(包括打开、适配网站,调用拨号界面等)...

    1.Toast提醒 为昨天写的按钮程序添加一个提醒,在MainActivity中添加如下代码: Button bt1 = (Button) findViewById(R.id.button_1); b ...

  8. android弹出输入法内存,android 输入法导致内存泄露问题

    该方法侵入太高,必须重新EditText,如果我们直接使用一个第三方的控件包含了EditText,那么这么做就没有意义,所以放弃了这种方案,然后我又想出了其他方案,Android 输入法导致内存泄露以 ...

  9. android 弹出框 list,android - 如何实现点击listpreference 后,弹出一个dialog?

    小皮2017-04-17 13:21:011楼 android.preference.ListPreference 源码如下: @Override protected void onPrepareDi ...

最新文章

  1. 吃透Java中的动态代理
  2. 接口测试用例_【学习】接口测试用例编写和测试关注点
  3. 1.9 Java 9增强的自动资源管理
  4. A Tutorial on Clustering Algorithms-聚类小知识
  5. XnSay临时网盘程序v1.0全开源
  6. 果汁飞溅海报还不会玩?先从临摹学习PSD分层模板开始
  7. UOJ276 [清华集训2016] 汽水 【二分答案】【点分治】【树状数组】
  8. 借条和欠条的区别在哪儿?
  9. mysql 还原 批量ibd_MySQL只有.frm和.ibd文件如何批量恢复InnoDB表-爱可生
  10. linux菜鸟要飞-根目录
  11. java web 分页 基于sql 2005 数据库
  12. 7.15 NOIP 2013
  13. Unity_雷达篇以及TUIO协议的使用。
  14. 聚集索引和非聚集索引的区别
  15. linux 无法生成图片大小,简单点。表演()在Linux上的ImageJ中生成错误
  16. 基于web的模型管理系统的设计
  17. 第二组 通信1班 180 林欣怡 抓包分析
  18. Tensorflow训练的模型,如何保存与载入?
  19. 计算机网络安全(三)
  20. 局域网-无法访问网上邻居-终极解决办法

热门文章

  1. 如何删除或者更新google中收录的网页快照信息
  2. 商洛学院数学与计算机应用官网,应用数学系简介
  3. 软件工程课程设计问题总结——医院门诊系统(四):后台获取下拉列表的值并在页面中显示
  4. 用PyQt5开发可视化爬虫软件
  5. 如何对遥感图像中统计量进行计算?
  6. bootstrap里的sr-only是什么属性?sr-only表示什么意思?有什么用途?
  7. 友链(欢迎加友链!)
  8. node调用mysql异步_node-mysql实现异步操作(上)
  9. JavaFX 按钮Button
  10. 价格战的关键,非“锂”莫属