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
        // 键盘隐藏
    }
}
相关推荐
rocpp1 小时前
Android 多语言切换实战:从 Context 到 Android 13 应用语言适配
android·kotlin
释然小师弟2 小时前
Android开发十年:反思与回顾
android·后端·嵌入式
黄林晴4 小时前
用了这么久 Koin Scope,原来一直都用错了?
android·kotlin
爱勇宝17 小时前
我做了一个只用来搜歌词的小 App
android·前端·后端
众少成多积小致巨20 小时前
JNI (Java Native Interface) 技术手册中文参考指南
android·java·c++
唐青枫1 天前
Kotlin Context Parameters 详解:别再把 Logger、事务和配置层层往下传
kotlin
Coffeeee1 天前
如何使用Glide和Coil加载WebP动图
android·kotlin·glide
Kapaseker1 天前
5 分钟搞懂 Kotlin DSL
android·kotlin
恋猫de小郭1 天前
AI Agent 开发究竟是啥?如何用 AI 开发 Agent ?深入浅出给你一套概念
android·前端·ai编程
黄林晴1 天前
Android 17 正式发布!target 37 一大批旧代码直接不能用了
android