Android判断软键盘是否显示
16lz
2021-01-23
如果显示则隐藏 否则弹出弹窗
if (isSoftShowing()) { final View v = (this).getWindow().peekDecorView(); if (v != null && v.getWindowToken() != null) { InputMethodManager imm = (InputMethodManager) getSystemService(INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(v.getWindowToken(), 0); }} else { CardPopuUtil.getInstance().showPopu(tvMeBackcardCardtype, tvMeBackcardCardtype, this);}
判断是否显示方法
private boolean isSoftShowing() {
//获取当屏幕内容的高度 int screenHeight = this.getWindow().getDecorView().getHeight(); //获取View可见区域的bottom Rect rect = new Rect(); //DecorView即为activity的顶级view this.getWindow().getDecorView().getWindowVisibleDisplayFrame(rect); //考虑到虚拟导航栏的情况(虚拟导航栏情况下:screenHeight = rect.bottom + 虚拟导航栏高度) //选取screenHeight*2/3进行判断 return screenHeight*2/3 > rect.bottom;}
更多相关文章
- Android 屏幕亮度调节(2.0以后出现亮度自动调节)如何开启、关闭亮
- Android获取屏幕高度及宽度
- Android中如何获取屏幕宽度和高
- -----------关于android屏幕保护---屏幕常亮---------屏幕解锁--
- Android如何设置标题栏的高度
- Android之下获取屏幕分辨率的方法
- Android获取状态栏高度
- android 获取字体高度
- Android 屏幕旋转后防止重新执行onCreate的方法。