android 自定义软键盘的显示和隐藏

复制代码
记一下,以后不用找

在InputMethodService中有这两个方法可以看到软键盘显示状态
复制代码
//软键盘隐藏
override fun onWindowHidden() {
    super.onWindowHidden()
}
复制代码
//软键盘显示
override fun onWindowShown() {
    super.onWindowShown()
}

在activity中可以通过这种方法看到软键盘显示状态

复制代码
view.viewTreeObserver.addOnGlobalLayoutListener {
    // 获取屏幕的高度
    val screenHeight: Int = view.getRootView().getHeight()

    // 获取当前布局的可见高度
    val rect = Rect()
    view.getWindowVisibleDisplayFrame(rect)
    // 计算键盘的高度
    var keyboardHeight = screenHeight - rect.bottom;
    if (keyboardHeight > screenHeight * 0.15) {
        // 键盘显示
        showKeyBoardHeight = keyboardHeight
        if (showKeyBoardHeight - hideKeyBoardHeight > 0) {
        
        }
    } else {
        hideKeyBoardHeight = keyboardHeight
        // 键盘隐藏
    }
}
相关推荐
Mike_Wuzy3 小时前
【Android】发展历程
android
开酒不喝车3 小时前
安卓Gradle总结
android
阿华的代码王国4 小时前
【Android】PopupWindow实现长按菜单
android·xml·java·前端·后端
稻草人不怕疼5 小时前
Android 15 全屏模式适配:A15TopView 自定义组件分享
android
静默的小猫5 小时前
LiveDataBus消息事件总线之二-(不含反射和hook)
android
~央千澈~6 小时前
05百融云策略引擎项目交付-laravel实战完整交付定义常量分文件配置-独立建立lib类处理-成功导出pdf-优雅草卓伊凡
android·laravel·软件开发·金融策略
_一条咸鱼_6 小时前
Android Runtime冷启动与热启动差异源码级分析(99)
android·面试·android jetpack
用户2018792831677 小时前
Java序列化之幽灵船“Serial号”与永生契约
android·java
用户2018792831677 小时前
“对象永生”的奇幻故事
android·java
枷锁—sha7 小时前
【BUUCTF系列】[HCTF 2018]WarmUp1
android·网络·web安全·网络安全