Android监听键盘是否弹出,以及获取软键盘的高度

网上介绍过监听键盘是否弹出的方法,我自己也是尝试过,不是很好用,今天发现了一种比较好的监听键盘是否弹出的方法,用起来十分简单,同时也可以通过此方法获取到键盘的高度

  1. et.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener(){
  2.             //当键盘弹出隐藏的时候会 调用此方法。
  3.             @Override
  4.             public void onGlobalLayout() {
  5.                 Rect r = new Rect();
  6.                 //获取当前界面可视部分
  7.                 MainActivity.this.getWindow().getDecorView().getWindowVisibleDisplayFrame(r);
  8.                 //获取屏幕的高度
  9.                 int screenHeight =  MainActivity.this.getWindow().getDecorView().getRootView().getHeight();
  10.                 //此处就是用来获取键盘的高度的, 在键盘没有弹出的时候 此高度为0 键盘弹出的时候为一个正数
  11.                 int heightDifference = screenHeight - r.bottom;
  12.                 Log.d("Keyboard Size""Size: " + heightDifference);
  13.             }
  14.         });

使用起来很简单只需判断键盘高度是否为0 就可以知道键盘是否弹出了。

getDecorView() 获取的是整个应用的view 包括标题栏,但是不包括状态栏,r.top就是状态栏的高度。

爱编程
  • 本文由 发表于 2013-08-2617:35:04
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: