首先 这是在做一个咨询的项目,聊天界面点击输入框时,一些列表数据被遮盖了,因为这个问题,足足让我掉了三根头发。
于是 百度 掘金 简书 博客 都翻烂了都没有真正解决我这个问题的方法
如
在对应activity中的setContentView()方法前:
getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_STATE_HIDDEN|WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);
或在mainifest文件中的activity标签下添加windowSoftInputMode属性 值为 adjustPan
等等等等……
然而 并没有什么卵用
于是 在今天的机缘巧合下 我在微信的一篇帖子上 找到了解决思路,然后随着这个思路 我就随便百度了一下 就解决了
解决方法:
思路 监听键盘的唤起 与隐藏
EditText.this..getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect rect =new Rect();
SendNewsActivity.this.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);//获取当前界面可视部分
int screenHeight = SendNewsActivity.this.getWindow().getDecorView().getRootView().getHeight();//获取屏幕高度
int heiDifference = screenHeight - rect.bottom;//获取键盘高度,键盘没有弹出时,高度为0,键盘弹出时,高度为正数
if (heiDifference ==0) {
//todo:软键盘没有弹出时
}else {
//todo:软键盘弹出时
}
}
}
});
亿分感谢--坐着
网友评论