Android 获取虚拟键盘高度
程序员文章站
2022-03-03 21:56:49
activity.getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener(){ //当键盘弹出隐藏的时候会 调用此方法。 @Override public void onGlobalLayout() { Rect rect =...
activity.getWindow().getDecorView().getViewTreeObserver().addOnGlobalLayoutListener(new ViewTreeObserver.OnGlobalLayoutListener(){
//当键盘弹出隐藏的时候会 调用此方法。
@Override
public void onGlobalLayout() {
Rect rect = new Rect();
//获取当前界面可视部分
activity.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect);
//此处就是用来获取键盘的高度的, 在键盘没有弹出的时候 此高度为0 键盘弹出的时候为一个正数
int heightDifference = activity.getWindow().getDecorView().getRootView().getHeight() - rect.bottom;
//动态监听键盘高度,更改最底部的view的高度将其他view挤上去
LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) postCommentBinding.bottom.getLayoutParams();
layoutParams.height = heightDifference;
postCommentBinding.bottom.setLayoutParams(layoutParams);
}
});
本文地址:https://blog.csdn.net/weixin_43942430/article/details/108706262