你的位置:首页 > 操作系统

[操作系统]通过获取屏幕高度和View高度来监听软键盘是否弹出


//该Activity的最外层LayoutfinalView activityRootView = findViewById(R.id.activityRoot); //给该layout设置监听,监听其布局发生变化事件activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(newOnGlobalLayoutListener(){  @Override  publicvoid onGlobalLayout(){    //比较Activity根布局与当前布局的大小    int heightDiff = activityRootView.getRootView().getHeight()- activityRootView.getHeight();    if(heightDiff >100){    //大小超过100时,一般为显示虚拟键盘事件       }else{    //大小小于100时,为不显示虚拟键盘或虚拟键盘隐藏    }   }});

heighDiff的大小不同的手机值就不同,可以打印log值来查看,然后再确定写出自己需要的值

 Log.d(TAG, "getRootView().getHeight():" + frameLayout.getRootView().getHeight() + ""); Log.d(TAG, "getHeight():" + frameLayout.getHeight() + ""); Log.d(TAG, "heightDiff:" + heightDiff + "");