在其他地方看到的方法 做一下记录
应用:这里在键盘弹起的时候 右边三个按钮变为一个按钮 隐藏的时候 一个按钮又变回来
第一步:
让需要这个功能的界面实现OnLayoutChangeListener接口
OnLayoutChangeListener
第二步:
为底部栏绑定该事件:
ll_bottom.addOnLayoutChangeListener(this);
第三步:
在重写的方法中实现对键盘事件的监听
@Override public void onLayoutChange(View v, int left, int top, int right, int bottom, int oldLeft, int oldTop, int oldRight, int oldBottom) { if (oldBottom != 0 && bottom != 0 && (oldBottom - bottom > 0)) { //键盘弹起 } else if (oldBottom != 0 && bottom != 0 && (bottom - oldBottom > 0)) { //键盘隐藏 } }
原理:其实就是判断底部栏所处的位置,如果变化后的Y坐标小于变化前的则认为键盘弹起,反之键盘隐藏
如果需求是底部栏不跟随键盘弹起呢?
有人说可以通过监听界面大小的变化来判断键盘的隐藏于显示,这里没有做尝试