android 弹出遮盖界面,Android软键盘弹出界面遮挡解决方案。
首先非常感谢 @陈旭金-小金子 我是根据他的博客修改而来。
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软键盘弹出界面遮挡解决方案。相关推荐
- 解决微信小程序IOS中使用picker弹出内容和手机软键盘重叠的问题
解决微信小程序IOS中使用picker弹出内容和手机软键盘重叠的问题 项目需求: 一个信息提交页面:有input输入框,有picker选择器 遇到的问题: 点击input输入框时,手机自动弹出键盘,但 ...
- Android 模仿QQ登录界面解决软键盘遮挡问题
Android 软件盘弹出可能会遮挡住界面上的某些控件.当 windowSoftInputMode 为 adjustPan 时,一般不会挡住 EditText,但是假如 EditText 下面是一个登 ...
- android 弹出编辑框,Android编程实现的EditText弹出打开和关闭工具类
本文实例讲述了Android编程实现的EditText弹出打开和关闭工具类.分享给大家供大家参考,具体如下: 需求: 使用代码实现Android的输入框EditText对键盘的关闭弹出的实现. 代码: ...
- 承接上一篇:说说评论弹出editext,计算软键盘高度,使listview,recyclerview上滑指定高度
最近项目中遇到问题:就是当软键盘弹出,editext输入时,遮挡listview,recyclerview条目,体验效果不好: 网上搜集,验证,找了个好的方法,希望能给大家项目中带来帮助: 通过监听e ...
- android弹出选择usb,android 解决:默认情况下用于该USB设备 自动获取USB操作权限...
很多android 的应用在使用USB设备时,总会遇到一个很烦人的问题. 即每次都会弹出对话框: 每次插入USB设备,都会弹出.每次选上默认情况下使用该USB设备.但总还是会弹出.用户体验很差. 似乎 ...
- 软键盘弹出时popwindow_PopupWindow与软键盘冲突
一.说明 笔记主要是记录一些本人在开发当中的学习和使用笔记.笔记内容包含一些本人觉得重要的知识点.本人易犯的错误等. 由于本人水平有限,其中出现的错误或者不合理的地方望各位读者多多包含,并指出其中不合 ...
- android 弹出菜单 toast,Android学习第二天:Toast(提醒)、Menu(菜单)、Intent的显式和隐式(包括打开、适配网站,调用拨号界面等)...
1.Toast提醒 为昨天写的按钮程序添加一个提醒,在MainActivity中添加如下代码: Button bt1 = (Button) findViewById(R.id.button_1); b ...
- android弹出输入法内存,android 输入法导致内存泄露问题
该方法侵入太高,必须重新EditText,如果我们直接使用一个第三方的控件包含了EditText,那么这么做就没有意义,所以放弃了这种方案,然后我又想出了其他方案,Android 输入法导致内存泄露以 ...
- android 弹出框 list,android - 如何实现点击listpreference 后,弹出一个dialog?
小皮2017-04-17 13:21:011楼 android.preference.ListPreference 源码如下: @Override protected void onPrepareDi ...
最新文章
- 吃透Java中的动态代理
- 接口测试用例_【学习】接口测试用例编写和测试关注点
- 1.9 Java 9增强的自动资源管理
- A Tutorial on Clustering Algorithms-聚类小知识
- XnSay临时网盘程序v1.0全开源
- 果汁飞溅海报还不会玩?先从临摹学习PSD分层模板开始
- UOJ276 [清华集训2016] 汽水 【二分答案】【点分治】【树状数组】
- 借条和欠条的区别在哪儿?
- mysql 还原 批量ibd_MySQL只有.frm和.ibd文件如何批量恢复InnoDB表-爱可生
- linux菜鸟要飞-根目录
- java web 分页 基于sql 2005 数据库
- 7.15 NOIP 2013
- Unity_雷达篇以及TUIO协议的使用。
- 聚集索引和非聚集索引的区别
- linux 无法生成图片大小,简单点。表演()在Linux上的ImageJ中生成错误
- 基于web的模型管理系统的设计
- 第二组 通信1班 180 林欣怡 抓包分析
- Tensorflow训练的模型,如何保存与载入?
- 计算机网络安全(三)
- 局域网-无法访问网上邻居-终极解决办法