private int oldDiff = 0;
private void registerHideKeyBoard() {
final View activityRoot = getWindow().getDecorView();
if (activityRoot ==null) {
return;
}
activityRoot.getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener() {
private final Rect r =new Rect();
@Override
public void onGlobalLayout() {
activityRoot.getWindowVisibleDisplayFrame(r);
int diff = activityRoot.getRootView().getHeight() -r.height();
//键盘是否弹出
boolean isOpen = (diff > 200);
if(diff!=oldDiff){
Log.d("keyboard", "keyboard open: "+isOpen);
oldDiff = diff;
if(isOpen){
Show(KeyboardHideView);
}else{
Gone(KeyboardHideView);
}
}
}
});
}
Android监听键盘是否弹出
最新推荐文章于 2024-08-25 03:43:08 发布