android 获取软键盘高度
时间: 2023-07-16 10:17:19 浏览: 61
在 Android 应用中,可以通过以下步骤获取软键盘的高度:
1.创建一个 ViewTreeObserver 对象,并添加一个 OnGlobalLayoutListener 监听器。
```
final View activityRootView = findViewById(R.id.activityRoot);
activityRootView.getViewTreeObserver().addOnGlobalLayoutListener(new OnGlobalLayoutListener() {
@Override
public void onGlobalLayout() {
Rect r = new Rect();
activityRootView.getWindowVisibleDisplayFrame(r);
int screenHeight = activityRootView.getRootView().getHeight();
int keypadHeight = screenHeight - r.bottom;
if (keypadHeight > screenHeight * 0.15) {
// 键盘弹出
} else {
// 键盘收回
}
}
});
```
2.在 onGlobalLayout() 方法中计算软键盘高度。可以使用 getWindowVisibleDisplayFrame() 方法获取应用窗口可见区域的矩形,再用屏幕高度减去该矩形的底部坐标,即可得到软键盘的高度。
注意,在 onGlobalLayout() 方法中要判断键盘是否弹出,可以根据软键盘高度与屏幕高度的比例来判断。
以上代码中,R.id.activityRoot 是应用的根布局。请根据实际情况修改代码。
阅读全文