接上篇博客 Dialog嵌Dialog打开软键盘设置布局不向顶部位移方案_Ycocol的博客-CSDN博客
解决思路是监听软键盘的弹出和隐藏
重新写一个软键盘的监听器
public static class SoftKeyBoardListener {
private View rootView;//activity的根视
int rootViewVisibleHeight;//纪录根视图的显示高度
private SoftKeyBoardListener.OnSoftKeyBoardChangeListener onSoftKeyBoardChangeListener;
public SoftKeyBoardListener(Activity activity) {
// 获取activity的根视图
rootView = activity.getWindow().getDecorView();
// 监听视图树中全局布局发生改变或者视图树中的某个视图的可视状态发生改变
rootView.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
DisplayMetrics dm = new DisplayMetrics();
activity.getWindowManager