随软键盘弹出和收回view(二)
来源:互联网 发布:读书无用论 知乎 编辑:程序博客网 时间:2024/06/15 23:19
上一篇提出了一种软键盘弹出时输入框显示在键盘上的方式,就是设置活动关于软键盘的属性为adjustPan,让软键盘把输入框顶上去。但是这种体验并不是很好,因为输入框上面的内容也都一起被顶了上去。
所以有另一种思路,就是软键盘弹出时输入框布局移动到软键盘上方,这里的移动是通过设置marginBottom实现的。
首先要做到的就是监听软键盘的弹出与回收,这个是通过给活动添加布局改变的监听实现的(在上一篇提到过):
final View view=getWindow().getDecorView(); view.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() { @Override public void onGlobalLayout() { Rect rect=new Rect(); view.getWindowVisibleDisplayFrame(rect); int displayHeight=rect.bottom-rect.top; int maxHeight=view.getHeight(); int height=maxHeight-displayHeight; if (height<200){ min=height; } if (height!=lastHeight){ LinearLayout.LayoutParams params= (LinearLayout.LayoutParams) llEdit.getLayoutParams(); params.setMargins(0,0,0,height-min); llEdit.setLayoutParams(params); lastHeight=height; } } });变量height表示界面被挤压掉的高度,软键盘弹出时可以近似认为是软键盘的高度。但是经过测试就算没有软键盘这个差值height也不是0(这里用min表示),所以设置min来辅助测算marginBottom。
每当软键盘弹出和收回的时候,这个监听方法得到调用,然后用height-min作为输入框布局的marginBottom,就可以做到布局出现在软键盘正上方,并在软键盘收回后沉底。
阅读全文
0 0
- 随软键盘弹出和收回view(二)
- 仿QQ空间评论随软键盘弹出和收回一个输入布局
- 软键盘的弹出与收回
- Android监听软键盘的弹出与收回
- addchildviewcontroller实现侧栏弹出和收回view处理
- android 软键盘的收回
- finish activity收回软键盘
- finish activity收回软键盘
- android 自定义View在弹出的软键盘之上,以及测量软键盘高度和监听软键盘状态
- android 自定义View在弹出的软键盘之上,以及测量软键盘高度和监听软键盘状态
- android按钮弹出和收回
- Android dialog软键盘弹出顶起View
- 关于android软键盘弹出挤压VIEW和覆盖View的问题
- Android监听软键盘弹起+收回
- 软键盘弹起收回,执行的动作
- Android软键盘(二) 软键盘弹出布局上移的问题
- 监听软键盘的弹出和隐藏 ( 终极方法)
- android 一进入view就弹出软键盘的问题
- Mysql定时执行任务实现方法
- __type_traits
- elasticsearch之Document APIs【Delete By Query API】
- JSP 语法详解
- 听君一席话,胜读十年书
- 随软键盘弹出和收回view(二)
- Visual Studio2015产品密钥
- 将Mat矩阵图像绘制在DC上
- event.srcElement与event.target的区别
- spring常用注解
- strcpy和strncpy用法和区别
- C#调用C++代码(CSharp Platform Invoke)
- 交换两个变量
- Flink集群部署详细步骤