h5如何动态获取键盘高度_监听软键盘的显示状态和获取高度

  • Post author:
  • Post category:其他


有时候在开发过程中需要监听软键盘的显示状态,在显示和隐藏键盘时对UI做出相应的调整。Android官方没有提供获取软键盘高度和状态的方法,但是可以通过监听当前应用的高度变化计算

出软键盘的高度。

首先获取到activity布局的最外层layout,通过调用getWindowVisibleDisplayFrame获取到整个应用可以显示的区域,这其中包括ActionBar和状态栏,但不含设备底部的虚拟按键。

再通过调用getRootView().getHeight(),获取整个屏幕的高度。同样,这个高度也不含虚拟按键的高度。

通过比较这两个高度,可以推断出软键盘是否显示,并且获取到软键盘的高度。

需要注意的是,这种方法前提是软键盘会影响界面布局,所以需要在AndroidManifest里给activity添加android:windowSoftInputMode=”adjustResize”。

具体实现代码如下:

private LinearLayout layout_main;

private TextView text;

// 状态栏的高度

private int statusBarHeight;

// 软键盘的高度

private int keyboardHeight;

// 软键盘的显示状态

private boolean isShowKeyboard;

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.activi



版权声明:本文为weixin_30444111原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。