android 获取软键盘高度

编程入门 行业动态 更新时间:2024-10-11 23:15:57

android 获取软<a href=https://www.elefans.com/category/jswz/34/1769421.html style=键盘高度"/>

android 获取软键盘高度

自己用的,方便以后找

mBinding.clBottom是底部控件,软键盘弹出时放在软键盘上方,软键盘隐藏时在最底部

mBinding.clBottom.viewTreeObserver.addOnGlobalLayoutListener {// 获取屏幕的高度val screenHeight: Int = mBinding.clBottom.getRootView().getHeight()// 获取当前布局的可见高度val rect = Rect()mBinding.clBottom.getWindowVisibleDisplayFrame(rect)// 计算键盘的高度var keyboardHeight = screenHeight - rect.bottom;if (keyboardHeight > screenHeight * 0.15) {// 键盘显示showKeyBoardHeight=keyboardHeightmBinding.clBottom.updateLayoutParams<ConstraintLayout.LayoutParams> { bottomMargin = showKeyBoardHeight-hideKeyBoardHeight }} else {hideKeyBoardHeight=keyboardHeight// 键盘隐藏mBinding.clBottom.updateLayoutParams<ConstraintLayout.LayoutParams> { bottomMargin = 0 }}
}

mBinding.clBottom.updateLayoutParams<ConstraintLayout.LayoutParams> {

bottomMargin = showKeyBoardHeight-hideKeyBoardHeight

}

下方android代码即为上方kotlin,主要用于设置空间的bottomMargin

ConstraintLayout.LayoutParams layoutParams = (ConstraintLayout.LayoutParams) mBinding.clBottom.getLayoutParams();
layoutParams.bottomMargin = showKeyBoardHeight - hideKeyBoardHeight;
mBinding.clBottom.setLayoutParams(layoutParams);

部分手机可能设置了底部虚拟导航栏等,导致获取的屏幕高度需要再减去hideKeyBoardHeight得出来的高度才是正确高度,直接使用showKeyBoardHeight可能导致mBinding.clBottom和软键盘之间有底部虚拟导航栏的高度大小的空隙

更多推荐

android 获取软键盘高度

本文发布于:2023-11-15 13:53:18,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1600784.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:键盘   高度   android

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!