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
        // 键盘隐藏
    }
}
相关推荐
baidu_247438612 小时前
Android ViewModel定时任务
android·开发语言·javascript
有位神秘人2 小时前
Android中Notification的使用详解
android·java·javascript
·云扬·3 小时前
MySQL Binlog落盘机制深度解析:性能与安全性的平衡艺术
android·mysql·adb
独自破碎E4 小时前
【BISHI9】田忌赛马
android·java·开发语言
代码s贝多芬的音符5 小时前
android 两个人脸对比 mlkit
android
darkb1rd7 小时前
五、PHP类型转换与类型安全
android·安全·php
gjxDaniel7 小时前
Kotlin编程语言入门与常见问题
android·开发语言·kotlin
csj507 小时前
安卓基础之《(22)—高级控件(4)碎片Fragment》
android
峥嵘life8 小时前
Android16 【CTS】CtsMediaCodecTestCases等一些列Media测试存在Failed项
android·linux·学习
stevenzqzq9 小时前
Compose 中的状态可变性体系
android·compose