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
        // 键盘隐藏
    }
}
相关推荐
simplepeng13 小时前
如何减少 89% 的重组,每个Compose开发者都需要的技巧 - derivedStateOf
android·android jetpack
Android 开发者13 小时前
这次,Android 大有不同
android
A8ai13 小时前
Gemini大升级、AI眼镜首发、Android XR亮相,13天后见分晓
android·人工智能·xr
YF021113 小时前
Android 物理摇杆按键映射技术详解
android·游戏
Kapaseker14 小时前
Kotlin inline:你以为它只是个性能优化?
android·kotlin
学习指针路上的小学渣14 小时前
kotlin笔记
kotlin
humors22114 小时前
全平台日常使用的国外应用
android·ios·app·安卓·应用·国外
黄林晴15 小时前
重磅更新!Kotlin协程1.11.0 发布,Flow/StateFlow 新 API 全面升级
android·kotlin
网安Ruler15 小时前
安卓逆向入门到入狱学习2
android·学习
Jomurphys15 小时前
Compose 组件 - 流式布局 FlowLayout(FlowColumn、FlowRow)
android·compose